Hello,

I'm using JBehave together with Selenium, JUnit and the maven failsafe plugin 
to run a bunch of integration tests. However I've hit a bit of a surprising 
problem. Some of the stories that run and and fail are not recorded as failed 
tests by JUnit. I can clearly see in the logs that JBehave prints stack traces 
that have occured while running the story, but somehow this doesn't 
propagate the exception high enough for JUnit to catch it and mark the story 
as failed.

The weird thing is that this does not occur for all stories. Some stories that 
print similar stack traces are marked as failed, but some aren't (see log in 
the 
PS). All my story classes extend JUnitStory with the Configuration set up just 
like in the JBehave tutorial samples.

I must be doing something wrong, but I can't figure out what. Does anybody 
have an idea?

Thanks for your help,

Nicolas Piguet

PS: one of the logs that leaves me scratching my head:

Running it.WorkspaceStateStory

(BeforeStories)

Using 1 threads
Running story it/workspace_state_story.story

(it/workspace_state_story.story)
Scenario: Reset Panels layout
When the user opens the home page
And the user clicks on the menu to reset layout
Then no panel is maximized
And no panel is closed
And no panel is detached (PENDING)

Scenario: Maximize the quotes panel
When the user opens the home page
And the user clicks on the menu to reset layout
And the user maximizes the quotes_list panel
Then the quotes_list panel is maximized (FAILED)
(com.thoughtworks.selenium.SeleniumException: missing ) after argument list)

com.thoughtworks.selenium.SeleniumException: missing ) after argument list
        at 
com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExce
ptionOrError(HttpCommandProcessor.java:100)
        at 
com.thoughtworks.selenium.HttpCommandProcessor.doCommand
(HttpCommandProcessor.java:94)
        at com.thoughtworks.selenium.DefaultSelenium.waitForCondition
(DefaultSelenium.java:639)
        at it.steps.HomePageSteps.waitForElementPresent
(HomePageSteps.java:212)
        at it.steps.HomePageSteps.thePanelIsMaximized
(HomePageSteps.java:146)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jbehave.core.steps.StepCreator$ParameterizedStep.perform
(StepCreator.java:456)
        at org.jbehave.core.embedder.StoryRunner$FineSoFar.run
(StoryRunner.java:394)
        at 
org.jbehave.core.embedder.StoryRunner.runStepsWhileKeepingState
(StoryRunner.java:381)
        at org.jbehave.core.embedder.StoryRunner.runScenarioSteps
(StoryRunner.java:352)
        at org.jbehave.core.embedder.StoryRunner.run
(StoryRunner.java:245)
        at org.jbehave.core.embedder.StoryRunner.run
(StoryRunner.java:163)
        at org.jbehave.core.embedder.Embedder$EnqueuedStory.call
(Embedder.java:686)
        at org.jbehave.core.embedder.Embedder$EnqueuedStory.call
(Embedder.java:650)
        at 
org.jbehave.core.embedder.Embedder$NonThreadingExecutorService.submit
(Embedder.java:588)
        at org.jbehave.core.embedder.Embedder.submit
(Embedder.java:244)
        at org.jbehave.core.embedder.Embedder.enqueueStory
(Embedder.java:237)
        at org.jbehave.core.embedder.Embedder.runStoriesAsPaths
(Embedder.java:197)
        at org.jbehave.core.junit.JUnitStory.run(JUnitStory.java:24)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
        at org.junit.internal.runners.MethodRoadie.runTestMethod
(MethodRoadie.java:98)
        at org.junit.internal.runners.MethodRoadie$2.run
(MethodRoadie.java:79)
        at 
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters
(MethodRoadie.java:87)
        at org.junit.internal.runners.MethodRoadie.runTest
(MethodRoadie.java:77)
        at org.junit.internal.runners.MethodRoadie.run
(MethodRoadie.java:42)
        at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod
(JUnit4ClassRunner.java:88)
        at org.junit.internal.runners.JUnit4ClassRunner.runMethods
(JUnit4ClassRunner.java:51)
        at org.junit.internal.runners.JUnit4ClassRunner$1.run
(JUnit4ClassRunner.java:44)
        at org.junit.internal.runners.ClassRoadie.runUnprotected
(ClassRoadie.java:27)
        at org.junit.internal.runners.ClassRoadie.runProtected
(ClassRoadie.java:37)
        at org.junit.internal.runners.JUnit4ClassRunner.run
(JUnit4ClassRunner.java:42)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute
(JUnit4TestSet.java:59)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet
(AbstractDirectoryTestSuite.java:120)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute
(AbstractDirectoryTestSuite.java:103)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess
(SurefireBooter.java:350)
        at org.apache.maven.surefire.booter.SurefireBooter.main
(SurefireBooter.java:1021)

Scenario: Minimize the quotes panel
When the user opens the home page
And the user minimizes the quotes_list panel
Then the quotes_list panel is minimized (FAILED)
(com.thoughtworks.selenium.SeleniumException: missing ) after argument list)

com.thoughtworks.selenium.SeleniumException: missing ) after argument list
        at 
com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExce
ptionOrError(HttpCommandProcessor.java:100)
        at 
com.thoughtworks.selenium.HttpCommandProcessor.doCommand
(HttpCommandProcessor.java:94)
        at com.thoughtworks.selenium.DefaultSelenium.waitForCondition
(DefaultSelenium.java:639)
        at it.steps.HomePageSteps.waitForElementAbsent
(HomePageSteps.java:216)
        at it.steps.HomePageSteps.thePanelIsMinimized
(HomePageSteps.java:152)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jbehave.core.steps.StepCreator$ParameterizedStep.perform
(StepCreator.java:456)
        at org.jbehave.core.embedder.StoryRunner$FineSoFar.run
(StoryRunner.java:394)
        at 
org.jbehave.core.embedder.StoryRunner.runStepsWhileKeepingState
(StoryRunner.java:381)
        at org.jbehave.core.embedder.StoryRunner.runScenarioSteps
(StoryRunner.java:352)
        at org.jbehave.core.embedder.StoryRunner.run
(StoryRunner.java:245)
        at org.jbehave.core.embedder.StoryRunner.run
(StoryRunner.java:163)
        at org.jbehave.core.embedder.Embedder$EnqueuedStory.call
(Embedder.java:686)
        at org.jbehave.core.embedder.Embedder$EnqueuedStory.call
(Embedder.java:650)
        at 
org.jbehave.core.embedder.Embedder$NonThreadingExecutorService.submit
(Embedder.java:588)
        at org.jbehave.core.embedder.Embedder.submit
(Embedder.java:244)
        at org.jbehave.core.embedder.Embedder.enqueueStory
(Embedder.java:237)
        at org.jbehave.core.embedder.Embedder.runStoriesAsPaths
(Embedder.java:197)
        at org.jbehave.core.junit.JUnitStory.run(JUnitStory.java:24)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
        at org.junit.internal.runners.MethodRoadie.runTestMethod
(MethodRoadie.java:98)
        at org.junit.internal.runners.MethodRoadie$2.run
(MethodRoadie.java:79)
        at 
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters
(MethodRoadie.java:87)
        at org.junit.internal.runners.MethodRoadie.runTest
(MethodRoadie.java:77)
        at org.junit.internal.runners.MethodRoadie.run
(MethodRoadie.java:42)
        at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod
(JUnit4ClassRunner.java:88)
        at org.junit.internal.runners.JUnit4ClassRunner.runMethods
(JUnit4ClassRunner.java:51)
        at org.junit.internal.runners.JUnit4ClassRunner$1.run
(JUnit4ClassRunner.java:44)
        at org.junit.internal.runners.ClassRoadie.runUnprotected
(ClassRoadie.java:27)
        at org.junit.internal.runners.ClassRoadie.runProtected
(ClassRoadie.java:37)
        at org.junit.internal.runners.JUnit4ClassRunner.run
(JUnit4ClassRunner.java:42)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute
(JUnit4TestSet.java:59)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet
(AbstractDirectoryTestSuite.java:120)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute
(AbstractDirectoryTestSuite.java:103)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess
(SurefireBooter.java:350)
        at org.apache.maven.surefire.booter.SurefireBooter.main
(SurefireBooter.java:1021)

Scenario: Close the chart panel
When the user opens the home page
And the user clicks on the menu to reset layout
And the user closes the chart panel
Then the chart panel is closed
And the other panels than chart are visible (FAILED)
(com.thoughtworks.selenium.SeleniumException: Timed out after 5000ms)

com.thoughtworks.selenium.SeleniumException: Timed out after 5000ms
        at 
com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExce
ptionOrError(HttpCommandProcessor.java:100)
        at 
com.thoughtworks.selenium.HttpCommandProcessor.doCommand
(HttpCommandProcessor.java:94)
        at com.thoughtworks.selenium.DefaultSelenium.waitForCondition
(DefaultSelenium.java:639)
        at it.steps.HomePageSteps.waitForElementPresent
(HomePageSteps.java:212)
        at it.steps.HomePageSteps.theOtherPanelsAreVisible
(HomePageSteps.java:175)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jbehave.core.steps.StepCreator$ParameterizedStep.perform
(StepCreator.java:456)
        at org.jbehave.core.embedder.StoryRunner$FineSoFar.run
(StoryRunner.java:394)
        at 
org.jbehave.core.embedder.StoryRunner.runStepsWhileKeepingState
(StoryRunner.java:381)
        at org.jbehave.core.embedder.StoryRunner.runScenarioSteps
(StoryRunner.java:352)
        at org.jbehave.core.embedder.StoryRunner.run
(StoryRunner.java:245)
        at org.jbehave.core.embedder.StoryRunner.run
(StoryRunner.java:163)
        at org.jbehave.core.embedder.Embedder$EnqueuedStory.call
(Embedder.java:686)
        at org.jbehave.core.embedder.Embedder$EnqueuedStory.call
(Embedder.java:650)
        at 
org.jbehave.core.embedder.Embedder$NonThreadingExecutorService.submit
(Embedder.java:588)
        at org.jbehave.core.embedder.Embedder.submit
(Embedder.java:244)
        at org.jbehave.core.embedder.Embedder.enqueueStory
(Embedder.java:237)
        at org.jbehave.core.embedder.Embedder.runStoriesAsPaths
(Embedder.java:197)
        at org.jbehave.core.junit.JUnitStory.run(JUnitStory.java:24)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59)
        at org.junit.internal.runners.MethodRoadie.runTestMethod
(MethodRoadie.java:98)
        at org.junit.internal.runners.MethodRoadie$2.run
(MethodRoadie.java:79)
        at 
org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters
(MethodRoadie.java:87)
        at org.junit.internal.runners.MethodRoadie.runTest
(MethodRoadie.java:77)
        at org.junit.internal.runners.MethodRoadie.run
(MethodRoadie.java:42)
        at org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod
(JUnit4ClassRunner.java:88)
        at org.junit.internal.runners.JUnit4ClassRunner.runMethods
(JUnit4ClassRunner.java:51)
        at org.junit.internal.runners.JUnit4ClassRunner$1.run
(JUnit4ClassRunner.java:44)
        at org.junit.internal.runners.ClassRoadie.runUnprotected
(ClassRoadie.java:27)
        at org.junit.internal.runners.ClassRoadie.runProtected
(ClassRoadie.java:37)
        at org.junit.internal.runners.JUnit4ClassRunner.run
(JUnit4ClassRunner.java:42)
        at org.apache.maven.surefire.junit4.JUnit4TestSet.execute
(JUnit4TestSet.java:59)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet
(AbstractDirectoryTestSuite.java:120)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute
(AbstractDirectoryTestSuite.java:103)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:169)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess
(SurefireBooter.java:350)
        at org.apache.maven.surefire.booter.SurefireBooter.main
(SurefireBooter.java:1021)

Scenario: Reopen the chart panel
When the user opens the home page
And the user clicks to toggle chart panel view
Then the chart panel is visible


(AfterStories)

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 24.225 sec

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to