Search in sources :

Example 11 with ReportsCount

use of org.jbehave.core.reporters.ReportsCount in project jbehave-core by jbehave.

the class EmbedderMojoBehaviour method shouldCreateNewEmbedderWithMavenMonitor.

@Test
public void shouldCreateNewEmbedderWithMavenMonitor() {
    // Given
    Log log = mock(Log.class);
    AbstractEmbedderMojo mojo = new AbstractEmbedderMojo() {

        public void execute() throws MojoExecutionException, MojoFailureException {
        }
    };
    mojo.setLog(log);
    // When
    Embedder embedder = mojo.newEmbedder();
    // Then
    EmbedderMonitor embedderMonitor = embedder.embedderMonitor();
    assertThat(embedderMonitor.toString(), containsString("MavenEmbedderMonitor"));
    // and verify monitor calls are propagated to Mojo Log
    BatchFailures failures = new BatchFailures();
    embedderMonitor.batchFailed(failures);
    verify(log).warn("Failed to run batch " + failures);
    String name = "name";
    Throwable cause = new RuntimeException();
    embedderMonitor.embeddableFailed(name, cause);
    verify(log).warn("Failed to run embeddable " + name, cause);
    List<String> classNames = asList("name1", "name2");
    embedderMonitor.embeddablesSkipped(classNames);
    verify(log).info("Skipped embeddables " + classNames);
    embedderMonitor.runningEmbeddable(name);
    verify(log).info("Running embeddable " + name);
    List<String> storyPaths = asList("/path1", "/path2");
    embedderMonitor.storiesSkipped(storyPaths);
    verify(log).info("Skipped stories " + storyPaths);
    String path = "/path";
    embedderMonitor.storyFailed(path, cause);
    verify(log).warn("Failed to run story " + path, cause);
    embedderMonitor.runningStory(path);
    verify(log).info("Running story " + path);
    Object annotatedInstance = new Object();
    Class<?> type = Object.class;
    embedderMonitor.annotatedInstanceNotOfType(annotatedInstance, type);
    verify(log).warn("Annotated instance " + annotatedInstance + " not of type " + type);
    File outputDirectory = new File("/dir");
    List<String> formats = asList(Format.CONSOLE.name(), Format.HTML.name());
    Properties viewProperties = new Properties();
    embedderMonitor.generatingReportsView(outputDirectory, formats, viewProperties);
    verify(log).info("Generating reports view to '" + outputDirectory + "' using formats '" + formats + "'" + " and view properties '" + viewProperties + "'");
    embedderMonitor.reportsViewGenerationFailed(outputDirectory, formats, viewProperties, cause);
    verify(log).warn("Failed to generate reports view to '" + outputDirectory + "' using formats '" + formats + "'" + " and view properties '" + viewProperties + "'", cause);
    int stories = 2;
    int storiesNotAllowed = 1;
    int storiesPending = 1;
    int scenarios = 4;
    int scenariosFailed = 1;
    int scenariosNotAllowed = 0;
    int scenariosPending = 1;
    int stepsFailed = 1;
    embedderMonitor.reportsViewGenerated(new ReportsCount(stories, storiesNotAllowed, storiesPending, scenarios, scenariosFailed, scenariosNotAllowed, scenariosPending, stepsFailed));
    verify(log).info("Reports view generated with " + stories + " stories (of which " + storiesPending + " pending) containing " + scenarios + " scenarios (of which " + scenariosPending + " pending)");
    verify(log).info("Meta filters excluded " + storiesNotAllowed + " stories and  " + scenariosNotAllowed + " scenarios");
    embedderMonitor.reportsViewNotGenerated();
    verify(log).info("Reports view not generated");
}
Also used : EmbedderMonitor(org.jbehave.core.embedder.EmbedderMonitor) Log(org.apache.maven.plugin.logging.Log) Embedder(org.jbehave.core.embedder.Embedder) InjectableEmbedder(org.jbehave.core.InjectableEmbedder) Matchers.containsString(org.hamcrest.Matchers.containsString) Properties(java.util.Properties) BatchFailures(org.jbehave.core.failures.BatchFailures) ReportsCount(org.jbehave.core.reporters.ReportsCount) File(java.io.File) Test(org.junit.Test)

Example 12 with ReportsCount

use of org.jbehave.core.reporters.ReportsCount in project jbehave-core by jbehave.

the class Embedder method generateReportsView.

public void generateReportsView(File outputDirectory, List<String> formats, Properties viewResources) {
    if (embedderControls().skip()) {
        embedderMonitor.reportsViewNotGenerated();
        return;
    }
    ViewGenerator viewGenerator = configuration().viewGenerator();
    try {
        embedderMonitor.generatingReportsView(outputDirectory, formats, viewResources);
        viewGenerator.generateReportsView(outputDirectory, formats, viewResources);
    } catch (RuntimeException e) {
        embedderMonitor.reportsViewGenerationFailed(outputDirectory, formats, viewResources, e);
        throw new ViewGenerationFailed(outputDirectory, formats, viewResources, e);
    }
    ReportsCount count = viewGenerator.getReportsCount();
    embedderMonitor.reportsViewGenerated(count);
    handleFailures(count);
}
Also used : ViewGenerator(org.jbehave.core.reporters.ViewGenerator) ReportsCount(org.jbehave.core.reporters.ReportsCount)

Aggregations

ReportsCount (org.jbehave.core.reporters.ReportsCount)12 File (java.io.File)11 Properties (java.util.Properties)11 Test (org.junit.Test)11 Matchers.containsString (org.hamcrest.Matchers.containsString)10 InjectableEmbedder (org.jbehave.core.InjectableEmbedder)9 OutputStream (java.io.OutputStream)8 PrintStream (java.io.PrintStream)8 ViewGenerator (org.jbehave.core.reporters.ViewGenerator)8 ByteArrayOutputStream (java.io.ByteArrayOutputStream)7 UsingEmbedder (org.jbehave.core.annotations.UsingEmbedder)7 BatchFailures (org.jbehave.core.failures.BatchFailures)4 Embedder (org.jbehave.core.embedder.Embedder)2 EmbedderMonitor (org.jbehave.core.embedder.EmbedderMonitor)2 ByteArrayOutputStream (org.apache.commons.io.output.ByteArrayOutputStream)1 Log (org.apache.maven.plugin.logging.Log)1 Project (org.apache.tools.ant.Project)1 EmbedderFailureStrategy (org.jbehave.core.embedder.Embedder.EmbedderFailureStrategy)1 FailingUponPendingStep (org.jbehave.core.failures.FailingUponPendingStep)1 Meta (org.jbehave.core.model.Meta)1