/* * Copyright (c) 2013-2015, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 3.0 * as published by the Free Software Foundation. */ package co.paralleluniverse.common.test; import co.paralleluniverse.common.util.Debug; import java.util.Arrays; import org.junit.rules.TestRule; import org.junit.rules.TestWatcher; import org.junit.runner.Description; /** * * @author pron */ public class TestUtil { public static final TestRule WATCHMAN = new TestWatcher() { @Override protected void starting(Description desc) { if (Debug.isDebug()) { System.out.println("STARTING TEST " + desc.getMethodName()); Debug.record(0, "STARTING TEST " + desc.getMethodName()); } } @Override public void failed(Throwable e, Description desc) { System.out.println("FAILED TEST " + desc.getMethodName() + ": " + e.getMessage()); e.printStackTrace(System.err); if (Debug.isDebug() && !(e instanceof OutOfMemoryError)) { Debug.record(0, "EXCEPTION IN THREAD " + Thread.currentThread().getName() + ": " + e + " - " + Arrays.toString(e.getStackTrace())); Debug.dumpRecorder("quasar." + desc.getClassName() + "." + desc.getMethodName() + ".dump"); } } @Override protected void succeeded(Description desc) { Debug.record(0, "DONE TEST " + desc.getMethodName()); } }; }