0

环境 - Cucumber V. 4.0.0 | 硒 V.3.8.1 | JUnit V.4.12 | 范围报告 3.0/4.0(任何人)

使用以下 Surefire 配置重新运行失败的测试用例。如果测试用例失败,那么它会再尝试一次,假设测试用例在第二次尝试中通过。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire.plugin.version}</version>
        <configuration>
            <parallel>methods</parallel>
            <threadCount>1</threadCount>
            <reuserForks>false</reuserForks>
            <testErrorIgnore>true</testErrorIgnore>   
            <testFailureIgnore>true</testFailureIgnore>
            <includes>
                <include>**/*RunCukeTest.java</include>
            </includes>
            <rerunFailingTestsCount>1</rerunFailingTestsCount>
        </configuration>
    </plugin>

一旦整体构建完成并且如果我检查 Cucumber-Maven 和 Cluecumber 报告,那么这些将只有通过尝试的详细信息,而不是测试用例失败的第一次尝试的详细信息。听起来很完美。但,

当我检查范围报告时,我得到了两次尝试的详细信息(失败和通过)。

在此处输入图像描述

在此处输入图像描述

有人可以指导我进行以下 2 个实现 -

1.我认为我应该在启动重新运行失败后报告仅通过测试用例(在范围报告中)作为(有或没有适配器,任何一个都可以工作)的一部分,如果测试用例得到,不想报告失败的尝试第 n 次尝试通过。

2.有时我们需要分析为什么很少有测试用例在 2nd/3rd 尝试中通过。那么有没有办法在启动重新运行失败后在一些单独的报告中报告失败的测试作为一部分

任何想法都将不胜感激,因为它会在报告中带来创新,并且在重新运行失败的测试用例时,我们会在失败/通过的测试用例分析方面获得最佳报告。

4

2 回答 2

1

据我记得,为了重新运行测试,TestNG 从头开始​​初始化执行,这会创建一个新套件并因此创建一个全新的报告(用新数据覆盖现有报告)。

在当前的方案中,这是不可能的,但有一个开放的票可以进行这种增强:github.com/extent-framework/extentreports-java/issues/25

于 2019-02-28T00:55:37.983 回答
0

据我所知,在 1.2.5 中可以使用 @extendedcucumberoptions,可以为失败的测试用例生成单独的报告,但从 4.0.0 开始就不可能了。

于 2019-03-01T18:25:20.903 回答