使用cucumber-jvm 4并行运行cucumber测试

时间:2019-03-22 16:37:27

标签: cucumber cucumber-jvm cucumber-junit

Java v8.x-春季v5.x黄瓜v4.2.0

我尝试了temyers/cucumber-jvm-parallel-plugin,但工作正常,但是当我进入他们的gitihub页面时,他们宣布停止使用此插件。b / c黄瓜已经开始支持cucumber-jvm 4.0.0的并行测试运行支持。

我已经使用以下Maven依赖项进行了现有测试。

cucumber-java v4.2.0
cucumber-junit v4.2.0
cucumber-spring v4.2.0

我有两个问题让我感到困惑。

  1. 要使用cumul-jvm,我必须更改依赖项,否则我当前的依赖项将起作用。
  2. 我可以通过传递参数--parallel来开始并行黄瓜测试吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

cucumber-jvm:4.0.0中引入了并行支持。这样您的依赖关系就可以了。

如果您使用的是Maven:

  

Cucumber JUnit - Parallel Execution with Maven

     

黄瓜JUnit支持跨多个线程并行执行功能文件。要使用maven启用此功能,请将parallel属性设置为methodsboth

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <parallel>both</parallel>
                <threadCount>4</threadCount>
            </configuration>
        </plugin>
    </plugins>
</build>

如果您使用的是Gralde,最好使用Gradle Cucumber插件,因为Gradle不支持子类级别的并行化。在这种情况下,您不需要cucumber-junit

  

Gradle Cucumber runner - Running features in parallel

     

如果指定数量,则黄瓜支持并行执行   使用线程。这可以通过两种方式完成

     
      
  • 一个从命令行./gradlew cucumber --threads 4运行的选项,它将运行四个并行线程
  •   
  • 扩展名,即在黄瓜部分的build.gradle文件中设置值。
  •   
     

在构建脚本中设置值时,您真的不知道如何   构建将访问许多线程。硬编码固定号码   可能不是您最好的选择。

     

一种指定要使用的线程数的方法是:

cucumber {
    threads = = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 
}
     

这将使用尽可能多的线程,同时为   Gradle执行。