Skip to content

Commit

Permalink
Fine-tuning the JBehave reporting, with limited success
Browse files Browse the repository at this point in the history
  • Loading branch information
wakaleo committed Aug 23, 2012
1 parent 05e3de3 commit 5d820dc
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 13 deletions.
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,17 @@
<artifactId>jbehave-junit-runner</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
34 changes: 25 additions & 9 deletions src/main/java/net/thucydides/jbehave/ThucydidesJBehave.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package net.thucydides.jbehave;

import net.thucydides.core.guice.Injectors;
import org.jbehave.core.Embeddable;
import org.jbehave.core.configuration.Configuration;
import org.jbehave.core.configuration.ParanamerConfiguration;
import org.jbehave.core.io.CodeLocations;
import org.jbehave.core.reporters.CrossReference;
import org.jbehave.core.reporters.FilePrintStreamFactory;
import org.jbehave.core.reporters.Format;
import org.jbehave.core.reporters.StoryReporterBuilder;

import java.util.List;
import java.util.Properties;

import static org.jbehave.core.reporters.Format.ANSI_CONSOLE;
import static org.jbehave.core.reporters.Format.CONSOLE;
Expand All @@ -19,21 +24,32 @@
*/
public class ThucydidesJBehave {

private static final CrossReference xref = new CrossReference();

/**
* Returns a default JBehave configuration object suitable for ThucydidesWebdriverIntegration tests.
*
* @return
*/
public static Configuration defaultConfiguration(net.thucydides.core.webdriver.Configuration systemConfiguration,
List<Format> formats) {
return new ParanamerConfiguration()
.useStoryReporterBuilder(new StoryReporterBuilder().withDefaultFormats()
.withFormats((Format[]) formats.toArray())
.withReporters(new ThucydidesReporter(systemConfiguration)));
}
List<Format> formats,
Embeddable embeddable) {

public static Configuration defaultConfiguration(List<Format> formats) {
return defaultConfiguration(Injectors.getInjector().getInstance(net.thucydides.core.webdriver.Configuration.class),
formats);
Class<? extends Embeddable> embeddableClass = embeddable.getClass();

Properties viewResources = new Properties();
viewResources.put("decorateNonHtml", "true");

return new ParanamerConfiguration()
.useStoryReporterBuilder(
new StoryReporterBuilder()
.withDefaultFormats()
.withFormats((Format[]) formats.toArray())
.withCrossReference(xref)
.withCodeLocation(CodeLocations.codeLocationFromClass(embeddableClass))
.withViewResources(viewResources)
.withPathResolver(new FilePrintStreamFactory.ResolveToPackagedName())
.withFailureTrace(true).withFailureTraceCompression(true)
.withReporters(new ThucydidesReporter(systemConfiguration)));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -94,14 +94,14 @@ protected List<String> getMetaFilters() {
@Override
public Configuration configuration() {
if (configuration == null) {
configuration = ThucydidesJBehave.defaultConfiguration(getSystemConfiguration(), formats);
configuration = ThucydidesJBehave.defaultConfiguration(getSystemConfiguration(), formats, this);
}
return configuration;
}

@Override
public InjectableStepsFactory stepsFactory() {
return ThucydidesStepFactory.withStepsFromPackage(getRootPackage(), formats).andClassLoader(getClassLoader());
return ThucydidesStepFactory.withStepsFromPackage(getRootPackage(), configuration()).andClassLoader(getClassLoader());
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,8 @@ public static void resetContext() {
context.remove();
}

public static ThucydidesStepFactory withStepsFromPackage(String rootPackage, List<Format> formats) {
return new ThucydidesStepFactory(ThucydidesJBehave.defaultConfiguration(formats), rootPackage, defaultClassLoader());
public static ThucydidesStepFactory withStepsFromPackage(String rootPackage, Configuration configuration) {
return new ThucydidesStepFactory(configuration, rootPackage, defaultClassLoader());
}

private static ClassLoader defaultClassLoader() {
Expand Down
2 changes: 2 additions & 0 deletions src/test/resources/log4j.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
log4j.logger.org.hibernate=warn
log4j.logger.net.thucydides=info

0 comments on commit 5d820dc

Please sign in to comment.