diff --git a/build.gradle b/build.gradle index e06a02b..0ab4687 100644 --- a/build.gradle +++ b/build.gradle @@ -52,7 +52,7 @@ ext { if (!project.hasProperty("bintrayApiKey")) { bintrayApiKey = '' } - serenityCoreVersion = '1.1.1' + serenityCoreVersion = '1.1.3' if (!project.hasProperty("bintrayApiKey")) { bintrayApiKey = '' @@ -123,6 +123,7 @@ dependencies { } compile('com.googlecode.lambdaj:lambdaj:2.3.3') { exclude group: 'org.objenesis', module: 'objenesis' + exclude group: 'org.hamcrest', module: 'hamcrest-all' } compile("org.codehaus.groovy:groovy-all:2.3.3") compile "junit:junit:4.11" diff --git a/src/main/java/net/serenitybdd/jbehave/SerenityReporter.java b/src/main/java/net/serenitybdd/jbehave/SerenityReporter.java index 5c62f23..d70dace 100644 --- a/src/main/java/net/serenitybdd/jbehave/SerenityReporter.java +++ b/src/main/java/net/serenitybdd/jbehave/SerenityReporter.java @@ -38,6 +38,7 @@ import org.jbehave.core.model.StoryDuration; import org.jbehave.core.reporters.StoryReporter; import org.junit.internal.AssumptionViolatedException; +import org.openqa.selenium.WebDriver; import java.io.File; import java.util.List; @@ -244,11 +245,14 @@ private boolean hasSameName(Story story, String givenStoryName) { return story.getName().equalsIgnoreCase(givenStoryName); } + Map drivers = Maps.newConcurrentMap(); + private void configureDriver(Story story) { StepEventBus.getEventBus().setUniqueSession(systemConfiguration.getUseUniqueBrowser()); String requestedDriver = getRequestedDriver(story.getMeta()); if (StringUtils.isNotEmpty(requestedDriver)) { ThucydidesWebDriverSupport.initialize(requestedDriver); + drivers.put(story, ThucydidesWebDriverSupport.getDriver()); } else { ThucydidesWebDriverSupport.initialize(); } @@ -449,8 +453,8 @@ public void afterStory(boolean given) { givenStoryMonitor.exitingGivenStory(); givenStoryDone(currentStory()); } else { + closeBrowsersForThisStory(); if (isAfterStory(currentStory())) { - closeBrowsersForThisStory(); generateReports(); } else if (!isFixture(currentStory()) && !given && (!isAStoryLevelGiven(currentStory()))) { StepEventBus.getEventBus().testSuiteFinished(); @@ -461,7 +465,11 @@ public void afterStory(boolean given) { } private void closeBrowsersForThisStory() { - ThucydidesWebDriverSupport.closeAllDrivers(); + if (drivers.containsKey(currentStory())) { + drivers.get(currentStory()).close(); + drivers.get(currentStory()).quit(); + drivers.remove(currentStory()); + } } private boolean isAfterStory(Story currentStory) {