@Override public void onFinish(ITestContext context) { generateLog(m_testContext, null /* host */, m_testContext.getOutputDirectory(), getConfigurationFailures(), getConfigurationSkips(), getPassedTests(), getFailedTests(), getSkippedTests(), getFailedButWithinSuccessPercentageTests()); } //
Collection<ITestResult> percentageTests) try (PrintWriter writer = new PrintWriter(Utils.openWriter(outputDirectory, getOutputFile(testContext)))) { .append(" ms)</td>\n") .append("</tr><tr>\n") .append("<td>Included groups:</td><td>").append(arrayToString(testContext.getIncludedGroups())).append("</td>\n") .append("</tr><tr>\n") .append("<td>Excluded groups:</td><td>").append(arrayToString(testContext.getExcludedGroups())).append("</td>\n") .append("</tr>\n") .append("</table><p/>\n"); generateTable(writer, "FAILED CONFIGURATIONS", failedConfs, "failed", CONFIGURATION_COMPARATOR); generateTable(writer, "SKIPPED CONFIGURATIONS", skippedConfs, "skipped", CONFIGURATION_COMPARATOR); generateTable(writer, "FAILED TESTS", failedTests, "failed", NAME_COMPARATOR); generateTable(writer, "FAILED TESTS BUT WITHIN SUCCESS PERCENTAGE", percentageTests, "percent", NAME_COMPARATOR); generateTable(writer, "PASSED TESTS", passedTests, "passed", NAME_COMPARATOR); generateTable(writer, "SKIPPED TESTS", skippedTests, "skipped", NAME_COMPARATOR); ppp(e.getMessage());
@Test public void shouldHonorSuiteName() throws IOException { Path outputDirectory = TestHelper.createRandomDirectory(); TestNG tng = create(outputDirectory, SampleA.class, SampleB.class); tng.addListener(new TestHTMLReporter()); Path fileA = outputDirectory.resolve("SuiteA-JDK5"); Path fileB = outputDirectory.resolve("SuiteB-JDK5"); Assert.assertTrue(Files.notExists(fileA)); Assert.assertTrue(Files.notExists(fileB)); tng.run(); Assert.assertTrue(Files.exists(fileA)); Assert.assertTrue(Files.exists(fileB)); }
@Override public List<ITestResult> getFailedTests() { return doWrap(super.getFailedTests()); }
@Override public List<ITestResult> getPassedTests() { return doWrap(super.getPassedTests()); }
@Test public void verifyIndex() throws IOException { Path outputDir = TestHelper.createRandomDirectory(); String suiteName = "VerifyIndexSuite"; String testName = "TmpTest"; XmlSuite suite = createXmlSuite(suiteName, testName, SimpleSample.class); TestNG tng = create(outputDir, suite); tng.addListener(new TestHTMLReporter()); Path f = getHtmlReportFile(outputDir, suiteName, testName); tng.run(); Assert.assertTrue(Files.exists(f), f.toString()); }
@Override public void onFinish(ITestContext context) { generateLog( m_testContext, null /* host */, m_testContext.getOutputDirectory(), getConfigurationFailures(), getConfigurationSkips(), getPassedTests(), getFailedTests(), getSkippedTests(), getFailedButWithinSuccessPercentageTests()); } //
Collection<ITestResult> percentageTests) { try (PrintWriter writer = new PrintWriter(Utils.openWriter(outputDirectory, getOutputFile(testContext)))) { .append("</tr><tr>\n") .append("<td>Included groups:</td><td>") .append(arrayToString(testContext.getIncludedGroups())) .append("</td>\n") .append("</tr><tr>\n") .append("<td>Excluded groups:</td><td>") .append(arrayToString(testContext.getExcludedGroups())) .append("</td>\n") .append("</tr>\n") "<small><i>(Hover the method name to see the test class name)</i></small><p/>\n"); if (!failedConfs.isEmpty()) { generateTable( writer, "FAILED CONFIGURATIONS", failedConfs, "failed", CONFIGURATION_COMPARATOR); generateTable( writer, "SKIPPED CONFIGURATIONS", skippedConfs, "skipped", CONFIGURATION_COMPARATOR); generateTable(writer, "FAILED TESTS", failedTests, "failed", NAME_COMPARATOR); generateTable( writer, "FAILED TESTS BUT WITHIN SUCCESS PERCENTAGE", generateTable(writer, "PASSED TESTS", passedTests, "passed", NAME_COMPARATOR);
@Test public void oneDirectoryPerSuite() throws IOException { Path outputDirectory = TestHelper.createRandomDirectory(); String suiteNameA = "ReportSuiteA"; String suiteNameB = "ReportSuiteB"; String testName = "TmpTest"; XmlSuite xmlSuiteA = createXmlSuite(suiteNameA, testName, SampleA.class); XmlSuite xmlSuiteB = createXmlSuite(suiteNameB, testName, SampleB.class); TestNG tng = create(outputDirectory, xmlSuiteA, xmlSuiteB); tng.addListener(new TestHTMLReporter()); Path f1 = getHtmlReportFile(outputDirectory, suiteNameA, testName); Path f2 = getHtmlReportFile(outputDirectory, suiteNameB, testName); tng.run(); Assert.assertTrue(Files.exists(f1)); Assert.assertTrue(Files.exists(f2)); }
@Test public void directoryShouldBeSuiteName() throws IOException { Path outputDirectory = TestHelper.createRandomDirectory(); String suiteName = "ReportTestSuite1"; String testName = "Test1"; String testName2 = "Test2"; XmlSuite xmlSuite = createXmlSuite(suiteName); createXmlTest(xmlSuite, testName); createXmlTest(xmlSuite, testName2); TestNG tng = create(outputDirectory, xmlSuite); tng.addListener(new TestHTMLReporter()); Path f = getHtmlReportFile(outputDirectory, suiteName, testName); Path f2 = getHtmlReportFile(outputDirectory, suiteName, testName2); tng.run(); Assert.assertTrue(Files.exists(f)); Assert.assertTrue(Files.exists(f2)); }
@Override public TestRunner newTestRunner(ISuite suite, XmlTest test, Collection<IInvokedMethodListener> listeners, List<IClassListener> classListeners, Map<Class<? extends IDataProviderListener>, IDataProviderListener> dataProviderListeners) { boolean skip = skipFailedInvocationCounts; if (! skip) { skip = test.skipFailedInvocationCounts(); } TestRunner testRunner = new TestRunner(configuration, suite, test, suite.getOutputDirectory(), suite.getAnnotationFinder(), skip, listeners, classListeners, comparator, dataProviderListeners); if (useDefaultListeners) { testRunner.addListener(new TestHTMLReporter()); testRunner.addListener(new JUnitXMLReporter()); //TODO: Moved these here because maven2 has output reporters running //already, the output from these causes directories to be created with //files. This is not the desired behaviour of running tests in maven2. //Don't know what to do about this though, are people relying on these //to be added even with defaultListeners set to false? testRunner.addListener(new TextReporter(testRunner.getName(), TestRunner.getVerbose())); } for (ITestListener itl : failureGenerators) { testRunner.addTestListener(itl); } for (IConfigurationListener cl : configuration.getConfigurationListeners()) { testRunner.addConfigurationListener(cl); } return testRunner; } }
testRunner.addListener(new TestHTMLReporter()); testRunner.addListener(new JUnitXMLReporter());
@Override public TestRunner newTestRunner(ISuite suite, XmlTest test, Collection<IInvokedMethodListener> listeners, List<IClassListener> classListeners) { TestRunner testRunner= new TestRunner(m_baseTest.getConfiguration(), suite, test, false, listeners, classListeners, Systematiser.getComparator()); testRunner.addListener(new TestHTMLReporter()); testRunner.addListener(new JUnitXMLReporter()); testRunner.addListener(new TestListener(m_baseTest)); if (listeners != null) { for (IInvokedMethodListener l : listeners) { testRunner.addListener(l); } } return testRunner; } }