【问题标题】:run cucumber tests parallel using cucumber-jvm 4使用 cucumber-jvm 4 并行运行黄瓜测试
【发布时间】:2019-03-22 16:37:26
【问题描述】:

Java v8.x - spring v5.x 黄瓜 v4.2.0

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

我有使用以下 maven 依赖项的现有测试。

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

我有两个问题让我很困惑。

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

感谢任何帮助。

【问题讨论】:

    标签: cucumber cucumber-jvm cucumber-junit


    【解决方案1】:

    cucumber-jvm:4.0.0 中引入了并行支持。所以你的依赖没问题。

    如果您使用的是 Maven:

    Cucumber JUnit - Parallel Execution with Maven

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

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

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

    Gradle Cucumber runner - Running features in parallel

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

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

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

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

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

    这将使用尽可能多的线程,同时将资源留给 要执行的 Gradle。

    【讨论】:

    • 嗨@mpkorstanje - 我们测试黄瓜的配置是否相同?
    • 另外,我们是否有任何包含 Maven 构建示例的文档
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2015-04-07
    相关资源
    最近更新 更多