[ 
https://jira.codehaus.org/browse/SUREFIRE-962?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=320341#comment-320341
 ] 

Andreas Gudian commented on SUREFIRE-962:
-----------------------------------------

Thanks for the example! It turned out that it's not the stack trace that was 
the problem, but the "display name" of the test description. Usually, it 
contains the test class name, in this case it was something different.

I did a quick fix that now returns the not-so-smart localizedMessage of the 
exception.
                
> SmartStackTraceParser cannot handle manipulated stack traces gracefully
> -----------------------------------------------------------------------
>
>                 Key: SUREFIRE-962
>                 URL: https://jira.codehaus.org/browse/SUREFIRE-962
>             Project: Maven Surefire
>          Issue Type: Bug
>         Environment: 2.13, 2.14-SNAPSHOT
>            Reporter: Sebastian Schuth
>             Fix For: 2.14
>
>
> Following setup:
> cucumber-jvm runs specs using a JUnit Test case.
> In case of an error, surefire seems to try to be smart and parses the stack 
> trace cucumber-jvm has, well, somewhat manipulated. 
> As far as i can tell, {{SmartStackTraceParser}} is not able to handle 
> manipulated stack traces gracefully.
> This leads to following maven output:
> {code}
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.14-SNAPSHOT:test 
> (default-test) on project customer: Execution default-test of goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.14-SNAPSHOT:test failed: 
> There was an error in the forked process
> [ERROR] org.apache.maven.surefire.testset.TestSetFailedException: 
> java.lang.RuntimeException: java.lang.ClassNotFoundException: Scenario: 
> Destinations get exchanged; nested exception is java.lang.RuntimeException: 
> java.lang.ClassNotFoundException: Scenario: Destinations get exchanged
> [ERROR] java.lang.RuntimeException: java.lang.ClassNotFoundException: 
> Scenario: Destinations get exchanged
> [ERROR] at 
> org.apache.maven.surefire.report.SmartStackTraceParser.getClass(SmartStackTraceParser.java:67)
> [ERROR] at 
> org.apache.maven.surefire.report.SmartStackTraceParser.<init>(SmartStackTraceParser.java:53)
> [ERROR] at 
> org.apache.maven.surefire.common.junit4.JUnit4StackTraceWriter.smartTrimmedStackTrace(JUnit4StackTraceWriter.java:72)
> [ERROR] at 
> org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:329)
> [ERROR] at 
> org.apache.maven.surefire.booter.ForkingRunListener.encode(ForkingRunListener.java:313)
> [ERROR] at 
> org.apache.maven.surefire.booter.ForkingRunListener.toString(ForkingRunListener.java:259)
> [ERROR] at 
> org.apache.maven.surefire.booter.ForkingRunListener.testFailed(ForkingRunListener.java:138)
> [ERROR] at 
> org.apache.maven.surefire.common.junit4.JUnit4RunListener.testFailure(JUnit4RunListener.java:107)
> [ERROR] at 
> org.junit.runner.notification.RunNotifier$4.notifyListener(RunNotifier.java:139)
> [ERROR] at 
> org.junit.runner.notification.RunNotifier$SafeNotifier.run(RunNotifier.java:61)
> [ERROR] at 
> org.junit.runner.notification.RunNotifier.fireTestFailures(RunNotifier.java:134)
> [ERROR] at 
> org.junit.runner.notification.RunNotifier.fireTestFailure(RunNotifier.java:128)
> [ERROR] at 
> org.junit.internal.runners.model.EachTestNotifier.addFailure(EachTestNotifier.java:23)
> [ERROR] at cucumber.runtime.junit.JUnitReporter.result(JUnitReporter.java:83)
> [ERROR] at cucumber.runtime.Runtime.runStep(Runtime.java:278)
> [ERROR] at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:45)
> [ERROR] at 
> cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:40)
> [ERROR] at 
> cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:36)
> [ERROR] at 
> cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:83)
> [ERROR] at 
> cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
> [ERROR] at 
> cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
> {code}
> Version 2.12.3 can handle the manipulated stack trace.
> To be clear: i am not really sure if this is an error within surefire or if 
> cucumber-jvm should just keep its hands off the stack trace it produces, but 
> the behavior of surefire changed between 2.12 and 2.13, so this may be worth 
> fixing.
> If you are interested in fixing this, i will happily create a project for 
> reproducing the error. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to