public void endTestSuite(JUnitTest suite) { for (JUnitResultFormatter report : reports) { report.endTestSuite(suite); } }
protected void startTests() { final TestSuite suite = new TestSuite(); final TestResult result = new TestResult(); final JUnitTest jUnitTest = new JUnitTest("ch.ethz.iks.slp.test"); jUnitTest.setProperties(System.getProperties()); // create the xml result formatter final JUnitResultFormatter xmlResultFormatter = new XMLJUnitResultFormatter(); final File file = new File(outputDirectory, "TEST-ch.ethz.iks.slp.test" + ".xml"); try { xmlResultFormatter.setOutput(new FileOutputStream(file)); } catch (FileNotFoundException e) { // may never happen e.printStackTrace(); } result.addListener(xmlResultFormatter); // create a result formatter that prints to the console final JUnitResultFormatter consoleResultFormatter = new BriefJUnitResultFormatter(); consoleResultFormatter.setOutput(System.out); result.addListener(consoleResultFormatter); // add the actual tests to the test suite Collection collection = new ArrayList(); collection.add(SelfDiscoveryTest.class); for (Iterator iterator = collection.iterator(); iterator.hasNext(); ) { Class clazz = (Class) iterator.next(); // run all methods starting with "test*" Method[] methods = clazz.getMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].getName().startsWith("test")) { TestCase testCase; try { testCase = (TestCase) clazz.newInstance(); testCase.setName(methods[i].getName()); suite.addTest(testCase); } catch (InstantiationException e) { // may never happen e.printStackTrace(); } catch (IllegalAccessException e) { // may never happen e.printStackTrace(); } } } } // prepare to run tests final long start = System.currentTimeMillis(); xmlResultFormatter.startTestSuite(jUnitTest); consoleResultFormatter.startTestSuite(jUnitTest); // run tests suite.run(result); // write stats and close reultformatter jUnitTest.setCounts(result.runCount(), result.failureCount(), result.errorCount()); jUnitTest.setRunTime(System.currentTimeMillis() - start); xmlResultFormatter.endTestSuite(jUnitTest); consoleResultFormatter.endTestSuite(jUnitTest); // print success of failure if (result.wasSuccessful()) { System.exit(0); } else { if (result.errorCount() > 0) { System.err.println("Errors:"); for (Enumeration errors = result.errors(); errors.hasMoreElements(); ) { TestFailure error = (TestFailure) errors.nextElement(); System.err.println(error.trace()); } } if (result.failureCount() > 0) { System.err.println("Failures:"); for (Enumeration failures = result.failures(); failures.hasMoreElements(); ) { TestFailure failure = (TestFailure) failures.nextElement(); System.err.println(failure.trace()); } } System.exit(1); } ; }