Adding @RunWith for breaks jbehave-junit-runner Creating a JBehave using Maven

I use JBehave with my Maven build, which I also develop in Eclipse, and sometimes run my unit tests with the JUnit runner in Eclipse. I found that jbehave-junit-runner works well to beautify JBehave stories in a JUnit runner. However, adding jbehave-junit-runner seems to have broken my Maven build.

The result of mvn clean install after installing https://github.com/codecentric/jbehave-junit-runner :

 [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol [ERROR] symbol: class RunWith /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol [ERROR] symbol: class RunWith /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[50,28] error: cannot access Runner [INFO] 5 errors [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.043 s [INFO] Finished at: 2014-12-23T15:38:39-08:00 [INFO] Final Memory: 14M/156M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project followerdownloader-frontend: Compilation failure: Compilation failure: [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol [ERROR] symbol: class RunWith [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[28,23] error: package org.junit.runner does not exist [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[42,1] error: cannot find symbol [ERROR] symbol: class RunWith [ERROR] /Users/mosofsky/Developer/FollowerDownloader/followerdownloader-frontend/src/main/java/com/netbase/followerdownloader/FollowerDownloaderStories.java:[50,28] error: cannot access Runner [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 

What does this mean https://github.com/codecentric/jbehave-junit-runner that violated my build?

+1
source share
1 answer

The solution to this problem is to expand the junit scope by removing the test item from junit in the pom.xml file:

 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <!-- <scope>test</scope> --> <!-- SOLUTION: COMMENTED OUT THIS LINE --> </dependency> 

I think I stumbled upon the paradox of JBehave and Behavior Driven Design (BDD):

I am worried that my decision may have consequences for my production code if I no longer restrict the junit scope to the standard Maven test directory .

However, my solution did indeed fix the original problem.

+1
source

All Articles