当前位置: 首页 > 知识库问答 >
问题:

如何使用 JVM-Cucumber-parallel-plugin 重新运行失败的测试

鲜于承基
2023-03-14

我正在使用 jvm cucumber并行插件,并希望重新运行我失败的测试用例。需要在 .pom 文件中进行哪些更改。

  <plugin>
            <groupId>com.github.temyers</groupId>
            <artifactId>cucumber-jvm-parallel-plugin</artifactId>
            <version>4.2.0</version>
            <executions>
                <execution>
                    <id>generateRunners</id>
                    <phase>generate-test-sources</phase>
                    <goals>
                        <goal>generateRunners</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/runner</outputDirectory>
                        <glue>
                            <package>com.xxx.stepdefs</package>
                            <package>com.xxx.cucumber.hooks</package>
                        </glue>
                        <featuresDirectory>src/test/resources/feature</featuresDirectory>
                        <cucumberOutputDir>${basedir}/target/cucumberreport/json</cucumberOutputDir>
                        <format>json</format>
                        <strict>true</strict>
                        <plugins>
                            <plugin>
                                <name>json</name>
                            </plugin>
                        </plugins>
                        <useTestNG>true</useTestNG>
                        <namingScheme>pattern</namingScheme>
                        <namingPattern>Parallel{c}TestRunner</namingPattern>
                        <parallelScheme>FEATURE</parallelScheme>

                    </configuration>
                </execution>
            </executions>
        </plugin>

共有1个答案

孟杰
2023-03-14

您可以尝试使用 maven-surefire-plugin 重新运行失败的测试,如下所示:

<configuration>
    <rerunFailingTestsCount>3</rerunFailingTestsCount>
</configuration>

并添加如下插件:

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

整个 .pom 文件如下所示:

<plugin>
    <groupId>com.github.temyers</groupId>
    <artifactId>cucumber-jvm-parallel-plugin</artifactId>
    <version>4.2.0</version>
    <executions>
        <execution>
            <id>generateRunners</id>
            <phase>generate-test-sources</phase>
            <goals>
                <goal>generateRunners</goal>
            </goals>
            <configuration>
                <outputDirectory>${basedir}/target/runner</outputDirectory>
                <glue>
                    <package>com.xxx.stepdefs</package>
                    <package>com.xxx.cucumber.hooks</package>
                </glue>
                <featuresDirectory>src/test/resources/feature</featuresDirectory>
                <cucumberOutputDir>${basedir}/target/cucumberreport/json</cucumberOutputDir>
                <format>json</format>
                <strict>true</strict>
                <plugins>
                    <plugin>
                        <name>json</name>
                    </plugin>
                </plugins>
                <useTestNG>true</useTestNG>
                <namingScheme>pattern</namingScheme>
                <namingPattern>Parallel{c}TestRunner</namingPattern>
                <parallelScheme>FEATURE</parallelScheme>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.20.1</version>
    <configuration>
        <surefire.rerunFailingTestsCount>3</surefire.rerunFailingTestsCount>
    </configuration>
</plugin>

注意:只有< code>JUnit 4.x支持此功能。

更多信息可在此处的官方文档中找到。

还有一个自定义的<code>gitHub</code>项目,它扩展了<code>Cucumber</code>选项,允许设置重新运行失败的测试计数,甚至有条件重新运行。您可以在此处查看:

  • GitHub项目
  • 留档网站

PS:您也可以在此处查看答案。

 类似资料:
  • 我试图将一个maven插件cucumber-jvm-parallel-plugin合并到我的Cucumber-JVM代码中,但遇到了一些问题...我认为我已经正确地配置了,但是我的cucumber特性仍然是一个接一个地运行,而不是并行地运行。 我遵循了两个教程,但找不到哪里出错了,或者如果这是意料之中的: https://opencredo.com/test-automation-concepts

  • 如何使用Maven在以下位置运行cucumber测试。 源文件夹'src/main/java'和'src/main/resources'包括在每个源文件夹中创建的包'com.testing.testproject.login'中的步骤定义和功能文件。 这是我的POM文件: 提前道谢。

  • 我正在尝试执行第二轮仅运行失败的场景,以避免由于环境/网络/测试不稳定而出现错误警报。我想知道是否有办法只运行一个maven命令来执行以下操作:1。运行my runner在其配置2中包含的所有方案。制作cucumber。此运行3的json报告。创建失败场景的列表4。运行失败场景列表5。根据第二次运行中失败测试的结果,更改第一次运行中创建的报告的结果,以便在最后,只有在两次运行中失败的场景被标记为失

  • 我已经建立了一个cucumberjava硒项目,我想在我的管道中添加重新运行阶段。使用运行器AllTestRunner中的@rerun插件.java我能够创建一个仅失败测试的重新运行.txt并使用maven-surefire-plugin,我创建了一个第二个运行器FailedRunner.java用于自动执行,仅失败的测试。 问题是FailedRunner.java不仅执行失败的测试,还执行All

  • 我想自动重试失败的测试,以提高测试的可靠性,类似于 Junit 中的 TestRule,我希望能够灵活地在测试周围插入逻辑,以便实现重试循环: > 我正在使用Cucumber-JVM,需要一个涉及Java或Gradle的解决方案 我通过Gradle javaexec尝试了以下cucumber选项: //--format pretty--format rerun--out tmp/rerun.txt

  • 我正在使用SeleniumWebDriver(2.53.0版)的Java实现对web应用程序运行一些自动化测试。测试使用Cucumber的Java实现(版本1.2.3)以行为驱动测试格式编写。我使用Maven(3.3.9版)导入我的所有依赖项,并构建和运行测试。使用cucumber标签将测试分为不同类别。例如,我可以使用以下命令从命令行运行一类标有@JohnnyBravo的测试: 在做了一些研究后