3

我试图让一个 JBehave 故事在 Maven 中执行,它完全忽略了 JBehave 插件。我花了几个小时使用不同的配置,但看起来插件根本没有被执行。任何建议/提示将不胜感激!

我所有的 JBehave 课程都在:

src/at/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>
4

3 回答 3

2

最好是将测试类的位置更改为 src/test/java 并根据 JBehave 的文档更改故事的名称。

于 2012-09-20T12:06:57.377 回答
1

使用 maven 运行的 JBehave 遵循 Maven 规则来定位代码和文本工件。对于测试范围,您必须将它们放在 src/test/java 和 src/test/resources 中。编译范围是 src/main/java 和 src/main/resources。

使用带有 maven 的 JBehave,您可以使用两个范围(测试或编译),您只需在插件配置中设置您想要的范围,然后选择放置工件的位置。它默认编译。

在您的情况下,您正在添加一个新的测试源,因此您必须将范围设置为测试:

在此处查看详细信息。

于 2013-06-07T11:56:23.957 回答
0

也许 jbehave-maven-plugin 找不到编译的测试类(场景),因为它在错误的类路径中查找。

请查看您的目标目录并搜索可嵌入类 -> 目标/类或目标/测试类?

为了解决这个问题,我必须设置 jbehave-maven-plugin 的范围来测试我的项目 pom.xml 的配置。

这是一个例子

<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>
于 2014-05-11T20:57:58.453 回答