首页 > 解决方案 > 努力实现cucumber jvm 4.2.3版本实现并行执行

问题描述

无法连接我将遵循的所有内容以实现 cucumber-jvm 版本 4.2.3 并行执行

我的环境 - Cucumber V 4.2.3 | 硒 V 3.8.1 | 朱尼特 - 4.2

下面是 Eclipse 控制台的输出。然而什么都没有被执行

    [INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ TheDayAfterTomorrow ---
    [INFO] Changes detected - recompiling the module!
    [INFO] Compiling 14 source files to D:\photon-workspace\TheDayAfterTomorrow\target\test-classes
    [INFO] 
    [INFO] --- maven-surefire-plugin:2.19:test (default-test) @ TheDayAfterTomorrow ---
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 5.986 s
    [INFO] Finished at: 2019-02-18T23:18:26+05:30
    [INFO] ------------------------------------------------------------------------

我也在使用 Pico Container 来实现 DI。

这是我的 RunCuke 实现

    package com.jacksparrow.automation.suite.runner;

    import org.junit.runner.RunWith;
    import cucumber.api.CucumberOptions;
    import cucumber.api.junit.Cucumber;

    @RunWith(Cucumber.class)
    @CucumberOptions(features = "classpath:features/functional/",
                         glue = {"com.jacksparrow.automation.steps_definitions.functional" },
                       plugin = { "pretty","json:target/cucumber-json/cucumber.json",
                                  "junit:target/Cucumber.xml", "html:target/cucumber-reports"},
                       strict = false,
                       dryRun = false,
                   monochrome = true)

    public class FunctionalRunCuke {
    }

POM.XML

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>4.2.3</version>
        </dependency>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>4.2.3</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>datatable</artifactId>
            <version>1.1.12</version>
        </dependency>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-testng</artifactId>
            <version>4.2.3</version>
        </dependency>

        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-picocontainer</artifactId>
            <version>4.2.3</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
        </dependency>

        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.0.0</version>
        </dependency>

Maven 编译器插件

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerVersion>1.8</compilerVersion>
                </configuration>
        </plugin>

Maven-Surefire-插件

           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19</version>

                <configuration>
                    <parallel>methods</parallel>
                    <threadCount>4</threadCount>
                </configuration>
            </plugin>

请指导这里缺少什么或实现 cucumber-jvm v4 并行执行的步骤。如果有人可以分享详细的步骤,将不胜感激,因为我已经尝试实施 1 周但到目前为止没有成功。

标签: cucumber

解决方案


问题是由于对 testNG 的依赖导致 Surefire 忽略 JUnit 包装类。我删除了所有 TestNG 依赖项,或者您可以调用 2 定义 2 执行 - 对于 TestNG 和 JUnit 并根据您的需要禁用一个,我正在使用 Maven Surefire 版本 3.0.0-M3


推荐阅读