这是Cucumber-JVM版本的正确组合,并平行于并行配置用于运行测试用例的Maven Surefire和编译器



我是cucumber -jvm并行插件的新手,并且基本上想了解2件事 -

首先 - 哪个版本的正确组合我将选择Cucumber -JVM并行插件,Maven SureFire和Compiler插件

第二 - cucumber-jvm实现之间的差异支持V 4.0和Cucumber-jvm-parallel插件的并行执行

有2个阶段的人在Cucumber-JVM-Parallel插件中配置。目标是验证或构成者。有人可以指导我这两个。

之间的区别
             <id>generateRunners</id>
                <phase>generate-test-sources</phase>
                <goals>
                    <goal>generateRunners</goal>
                </goals>

JVM实现下是否有任何强制配置

    <plugin>
        <groupId>com.github.temyers</groupId>
        <artifactId>cucumber-jvm-parallel-plugin</artifactId>
        <version>2.2.0</version>
        <executions>
            <execution>
                <id>generateRunners</id>
                <phase>generate-test-sources</phase>
                <goals>
                    <goal>generateRunners</goal>
                </goals>
                <configuration>

<glue>com.jacksparrow.automation.steps_definitions.functional</glue>
                        <outputDirectory>${project.build.directory}/generated-test-sources</outputDirectory>
                        <featuresDirectory>src/test/resources/features/functional/</featuresDirectory>
                        <cucumberOutputDir>target/cucumber-parallel</cucumberOutputDir>
                        <format>json,html</format>
                        <tags>"~@ignored"</tags>
                    </configuration>
                </execution>
            </executions>
        </plugin>

请指导我,因为这让我感到困惑。

maven surefire在JUNIT测试中具有两个并行执行。它可以并行运行单个类,并且可以为调度程序提供正确实现ParentRunner的测试跑步者。通常,这用于通过BlockJUnit4ClassRunner并行运行方法。

直到版本V4 Cucumber无法正确实现ParentRunner,因此无法使用调度程序并行执行功能文件。

如Cucumber-Jvm-parallel-Plugin/readme中所述,插件将为每个功能创建一个单独的跑步者类。这意味着并行执行取决于SureFires并行运行类,而不是提供调度程序的能力。

如果您使用的是Cucumber V4,则不应使用并行插件。除了一些有限的用例以外,所有这些都没有好处,而且有很多缺点。

cucumber-jvm/junit/readme.md介绍了如何配置surefire并行执行(最新稳定版本是 surefire:2.22.1,应该起作用)。

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

,因此总体图是,如果我们使用Cucumber V 4.0.0或更高,则我们将不使用Cucumber-JVM并行插件。因为Cucumber 4.0.0实现的主要原理之一是为并行执行提供支持并进入Maven Surefire版本,我们也可以使用最新的版本,即3.0.0-M3。

最新更新