【问题标题】:JBehave & Maven - how to skip scenario testsJBehave & Maven - 如何跳过场景测试
【发布时间】:2011-10-28 08:16:24
【问题描述】:

我正在使用 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>

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

非常感谢你们的任何见解或想法!谢谢!

【问题讨论】:

    标签: maven maven-plugin scenarios jbehave


    【解决方案1】:

    您不需要为此提供个人资料。只需像这样将 ${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 场景。

    【讨论】:

    • 有趣的是,它对我不起作用:它记录 [DEBUG] (f) skip = true 并愉快地进行测试。
    • 我正在使用 maven-release-plugin 并且无法跳过测试用例。你能帮我解决这个问题吗?我正在使用这个命令 -Dresume=false -Darguments="-DskipTests" 发布:准备发布:执行。我正在使用 Jenkins 进行构建。
    【解决方案2】:
    1. 您的配置中有 ma​​ven-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>
    

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        【解决方案4】:

        您可能需要先add Meta data 进入您的场景,然后使用Meta filtering 选择您要运行的场景。

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

        【讨论】:

          猜你喜欢
          • 2023-03-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-03
          相关资源
          最近更新 更多