package me.atam.atam4j.logging; import org.junit.runner.Description; import org.junit.runner.Result; import org.junit.runner.notification.Failure; import org.junit.runner.notification.RunListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Date; public class LoggingListener extends RunListener { private static Logger LOGGER = LoggerFactory.getLogger(LoggingListener.class); @Override public void testRunStarted(Description description) throws Exception { LOGGER.info("Starting tests at {}", new Date()); } @Override public void testRunFinished(Result result) throws Exception { LOGGER.info("Tests finishes at {}", new Date()); LOGGER.info("Report :: total run = {}, failures = {}, in time = {} milliseconds", result.getRunCount(), result.getFailureCount(), result.getRunTime() ); } @Override public void testStarted(Description description) throws Exception { LOGGER.info("Starting {}", description.getDisplayName()); } @Override public void testFinished(Description description) throws Exception { LOGGER.info("Finished {}", description.getDisplayName()); } @Override public void testFailure(Failure failure) throws Exception { LOGGER.info( String.format("Test %s failed: %s", failure.getTestHeader(), failure.getDescription() ), failure.getException() ); } @Override public void testAssumptionFailure(Failure failure) { LOGGER.info( String.format("Test %s assumption failed: %s", failure.getTestHeader(), failure.getDescription() ), failure.getException() ); } @Override public void testIgnored(Description description) throws Exception { LOGGER.info("Test {} ignored: ", description.getDisplayName()); } }