JBehave& Maven - 如何跳过场景测试

时间:2011-10-28 08:16:25

标签: maven maven-plugin scenarios jbehave

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

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

每次运行maven安装目标时,它都会运行测试。 我尝试在下面添加跳过方案配置文件,但它不会阻止测试运行。

<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 个答案:

答案 0 :(得分: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场景。

答案 1 :(得分:1)

  1. 您的配置中有 maven-surefire-plugin
  2. 您可能希望对配置文件使用属性激活,以便可以使用该命令运行它
      

    mvn -DskipScenarios

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

    这是一个有效的例子:

    <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>
    

答案 2 :(得分:0)

仍然没有找到这样做的maven方法。

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

满意但不完美的解决方案。

答案 3 :(得分:0)

可能您需要先add Meta data到您的方案,然后使用Meta filtering选择您要运行的方案。

这可能不是最简单的方法,但是在jbehave wiki中有明确记录,一旦你有Meta信息,你就可以灵活地以你想要的任何组合运行测试。