4

我正在使用 jbehave 和 jbehave maven 插件来运行一组场景测试。

让我的测试类扩展 JUnitStories,一切正常。唯一的问题是,我无法停止运行测试......

每次我运行 maven install 目标时,它都会运行测试。我尝试在下面添加一个跳过场景配置文件,但它不会阻止测试运行。

<profile>
    <id>skipScenarios</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>
</profile>

我也尝试过使用排除标签而不是跳过,并排除我的场景类,但没有运气。

我真的很感激你们的任何见解或想法!谢谢!

4

4 回答 4

8

您不需要为此提供个人资料。只需像这样将 ${skipTests} 添加到执行的配置中

<plugin>
   <groupId>org.jbehave</groupId>  
   <artifactId>jbehave-maven-plugin</artifactId>
   <version>${jbehave.core.version}</version>
   <executions>
      <execution>
         <id>unpack-view-resources</id>
         <phase>process-resources</phase>
         <goals>
            <goal>unpack-view-resources</goal>
         </goals>
      </execution>
      <execution>
     <id>embeddable-stories</id>
         <phase>test</phase>
         <configuration>
            <includes>
               <include>${embeddables}</include>
            </includes>
            <excludes />
            <skip>${skipTests}</skip>
            ...

然后运行 ​​mvn -DskipTests 将跳过单元测试和 JBhehave 场景。

于 2011-11-23T12:29:16.240 回答
1
  1. 您的配置中有maven-surefire-plugin
  2. 您可能希望对配置文件使用属性激活,以便可以使用命令运行它

    mvn -DskipScenarios

  3. 如果您使用配置文件并且在此配置文件中不存在执行,您甚至不需要跳过配置

这是一个工作示例:

<profile>
        <id>skipScenarios</id>
        <activation>
            <property>
                <name>skipScenarios</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.jbehave</groupId>
                    <artifactId>jbehave-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    </profile>
于 2011-11-18T17:45:35.483 回答
0

仍然找不到执行此操作的 Maven 方法。

最简单的方法似乎是添加一个 JVM 参数并使用 System.getProperty("theconfig") 来决定是否运行场景。

令人满意,但不是完美的解决方案。

于 2011-10-31T12:22:07.173 回答
0

可能您需要首先将元数据添加到您的场景中,然后使用元过滤来选择您想要运行的场景。

这可能不是最简单的方法,但它在 jbehave wiki 中有清楚的记录,一旦你有了元信息,你将有很大的灵活性以你想要的任何组合运行测试。

于 2012-11-19T19:02:10.930 回答