package test.reports; import org.testng.Assert; import org.testng.Reporter; import org.testng.TestNG; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import test.SimpleBaseTest; import java.util.List; /** * Make sure that Reporter.log() in listeners don't get discarded. */ public class ReporterLogTest extends SimpleBaseTest { @DataProvider public static Object[][] dp() { return new Object[][]{ new Object[]{ReporterLogSuccessSample.class, "Listener: onTestSuccess"}, new Object[]{ReporterLogSkippedSample.class, "Listener: onTestSkipped"}, new Object[]{ReporterLogFailureSample.class, "Listener: onTestFailure"} }; } @Test(dataProvider = "dp") public void shouldLogFromListener(Class<?> testClass, String value) { TestNG tng = create(testClass); tng.run(); List<String> output = Reporter.getOutput(); Assert.assertTrue(contains(output, value)); } private static boolean contains(List<String> output, String logMessage) { for (String s : output) { if (s.contains(logMessage)) { return true; } } return false; } }