package net.thucydides.junit.runners.integration; import net.thucydides.core.model.TestOutcome; import net.thucydides.junit.rules.DisableThucydidesHistoryRule; import net.thucydides.junit.rules.QuietThucydidesLoggingRule; import net.thucydides.junit.runners.AbstractTestStepRunnerTest; import net.thucydides.junit.runners.ThucydidesRunner; import net.thucydides.samples.LongSamplePassingScenarioUsingPhantomJS; import org.junit.Rule; import org.junit.Test; import org.junit.runner.notification.RunNotifier; import org.junit.runners.model.InitializationError; import java.util.List; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; public class WhenRunningATestScenarioWithScreenshots extends AbstractTestStepRunnerTest { @Rule public QuietThucydidesLoggingRule quietThucydidesLoggingRule = new QuietThucydidesLoggingRule(); @Rule public DisableThucydidesHistoryRule disableThucydidesHistoryRule = new DisableThucydidesHistoryRule(); @Test public void the_test_runner_records_the_steps_as_they_are_executed() throws InitializationError { ThucydidesRunner runner = new ThucydidesRunner(LongSamplePassingScenarioUsingPhantomJS.class); runner.run(new RunNotifier()); List<TestOutcome> executedSteps = runner.getTestOutcomes(); assertThat(executedSteps.size(), is(1)); TestOutcome testOutcome1 = executedSteps.get(0); assertThat(testOutcome1.getTitle(), is("Happy day scenario")); assertThat(testOutcome1.getMethodName(), is("happy_day_scenario")); assertThat(testOutcome1.getTestSteps().size(), is(3)); assertThat(testOutcome1.getScreenshots().size(), is(not(0))); } }