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

cucumber重新运行失败的测试和cocatenate结果使用testNG运行cucumber4. x

边永贞
2023-03-14

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

我使用cucumber4.4.0和testNG转轮。

我尝试使用@ExtendedCucumberOptions(http://mkolisnyk.github.io/cucumber-reports/extended-cucumber-runner),第一次运行还可以,但第二次运行从未发生,抛出以下异常:“方法公共无效com.github.mkolisnyk.cucumber.runner.ExtendedTestNGRunner.feature(cucumber.api.testng.CucumberFeatureWrapper)需要一个名为:功能的@DataProvider"

我发现这个问题:https://github.com/mkolisnyk/cucumber-reports/issues/138所以,这个cucumber报告库似乎不支持cucumber的更高版本,我无法使用@ExtendedCucumberOptions来提供我所需要的内容。

===

<dependency>
    <groupId>com.github.mkolisnyk</groupId>
    <artifactId>cucumber-runner</artifactId>
    <version>1.3.4</version>
</dependency>


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

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

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

===

package runners;

import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
import org.testng.annotations.DataProvider;


@CucumberOptions(
        features = {"src/test/resources/features/"},
        glue = {"stepDefinitions"},
        tags = {"@magic"},
        plugin = {
                "pretty"
                , "html:target/cucumber"
                , "json:target/cucumber/cucumber.json"
                , "rerun:target/cucumber/failedTests.txt"
        },
        monochrome = false
)


public class AreaRunner extends AbstractTestNGCucumberTests { 

        @Override
        @DataProvider(parallel = true)
        public Object[][] scenarios() {
                return super.scenarios();
        }

}

除了@ExtendedCucumberOptions之外,还有其他解决方案吗?

共有2个答案

邢弘业
2023-03-14

尝试https://github.com/prashant-ramcharan/courgette-jvm-它能够重新运行失败的测试,类似于ExtendedCucumberOptions,但这一个已经包含了新的Cucumber。

慕项明
2023-03-14

第二次运行从未发生的原因是因为重试功能仅适用于JUnit跑步者,如https://github.com/mkolisnyk/cucumber-reports/issues/167.

 类似资料:
  • 下面是我的赛跑课, 配置失败:@AfterClass tearDownClass java.lang.NullPoInterException at Cucumber.api.testng.AbstractTestngCucumberTests.tearDownClass(AbstractTestngCucumberTests.java:34)at Sun.Reflect.NativeMethod

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

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

  • 我试图使用TestNG和SpringBootTest并行运行两个Cucumber测试,但当我的测试执行时,会发生以下情况 两个浏览器都打开并导航到维基百科主页 1个浏览器继续测试,另一个留在主页上 1个测试通过,另一个测试失败 我不知道为什么一个测试会停止执行,欢迎任何帮助。 回购:https://github.com/cmccarthyIrl/spring-cucumber-testng-par

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

  • 我正在使用cucumber测试和testng,我计划并行运行测试。我以前有使用testng框架和并行执行的经验,如果不使用mavensurfire插件(pom.xml),我如何实现相同的效果 我的配置, Cucumber JVM,TestNGCucumberRunner。用于触发特性文件的java文件