我试图在Maven中执行一个JBehave故事,它完全忽略了JBehave插件。我花了几个小时使用不同的配置,但看起来插件根本没有被执行。任何建议/提示将不胜感激!
我所有的JBehave课程都住在:
的src /在/ JAVA
我的pom.xml的相关部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/at/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<executions>
<execution>
<id>run-stories-as-embeddables</id>
<phase>integration-test</phase>
<configuration>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
<goals>
<goal>run-stories-as-embeddables</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
答案 0 :(得分:2)
最好是将测试类的位置更改为src / test / java,并根据JBehave的文档更改故事的名称。
答案 1 :(得分:1)
与maven一起运行的JBehave遵循Maven规则来定位代码和文本工件。 对于测试范围,您必须将它们放在src / test / java和src / test / resources中。对于编译范围是src / main / java和src / main / resources。
使用JBehave和maven你可以使用两个范围(测试或编译),你只需要在插件配置中设置你想要的那个,这样你就可以选择放置工件的位置。它默认为编译。
在您的情况下,您要添加新的测试源,因此您必须将范围设置为test:
答案 2 :(得分:0)
也许jbehave-maven-plugin找不到已编译的测试类(场景),因为它看起来是错误的类路径。
请查看您的目标目录并搜索可嵌入的类 - &gt;目标/类或目标/测试类?
要解决这个问题,我必须在项目pom.xml的配置中设置jbehave-maven-plugin的范围进行测试。
这是一个例子
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<executions>
<execution>
<id>run-stories-as-embeddables</id>
<phase>integration-test</phase>
<goals>
<goal>run-stories-as-embeddables</goal>
</goals>
<configuration>
<scope>test</scope>
<includes>
<include>**/*Scenarios.java</include>
</includes>
<ignoreFailureInStories>true</ignoreFailureInStories>
<ignoreFailureInView>false</ignoreFailureInView>
</configuration>
</execution>