4

当我尝试通过 Maven (surefire) 一起使用 Cucumber 和 Junit 时,报告的测试数量错误。我只有 250 个测试,但 Jenkins 向我展示了 1200 个测试。所以当我调查它时,我只能找到一个参考,那就是肯定插件的问题。

https://github.com/cucumber/cucumber-jvm/issues/322

如何纠正它?

4

3 回答 3

1

我只能用万无一失来创造黑客。如果您愿意,可以使用:

  1. 有必要通过 Cucumber 创建 junit 报告到某个文件夹 (1) 'cucumber'
  2. 将surefire报告(不包括surefire生成的Cucumber报告)复制到黄瓜生成报告的某个文件夹(2)“surefire-reports-fixed”。
  3. 将黄瓜 junit-report 从 (1) 复制到 (2)
  4. jenkins 必须使用文件夹 (2) 'surefire-reports-fixed'

Maven 中的示例更改:

 <plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <id>change-bad-cucumber-test-file</id>
                        <!-- here the phase you need -->
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${basedir}/target/surefire-reports-fixed</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${basedir}/target/cucumber</directory>
                                </resource>
                                <resource>
                                    <directory>${basedir}/target/surefire-reports</directory>
                                    <excludes>
                                        <exclude>**/*CucumberTest.*</exclude>
                                    </excludes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

CucumberTest.java 中的变化:

@RunWith(Cucumber.class)
@Cucumber.Options(format = { "pretty", "junit:target/cucumber/TEST-packageHereToClass.CucumberTest.xml", "json:target/cucumber.json" })
public class CucumberTest {
 ...
}

在詹金斯将用于测试的surefire文件夹设置为(2)'surefire-reports-fixed'

于 2012-11-13T09:00:21.927 回答
0

以下链接似乎是相关的。

讨论步骤定义算作测试的核心问题:

https://github.com/cucumber/cucumber-jvm/issues/577

单独的问题在评论中讨论了从将步骤计数为测试更改为将场景计数为junit测试的修复程序即将发布,但与 Gherkin 3 开发工作相关:

https://github.com/cucumber/cucumber-jvm/issues/263

于 2014-02-26T19:49:28.230 回答
0

以下内容对我有用-我在@cucumbeOptions 中添加了黄瓜-junit 报告格式,即- “junit:target/surefire-reports/TEST-TestSuite.xml”,然后当我在 Eclipse(也在 VSO 中)运行它时,Junit报告是在TEST-TestSuite.xml文件中生成的,具有适当的计数。

下面的代码-->

    @CucumberOptions(
                features= {"src/test/resources/Features"},
                plugin   = {"pretty:STDOUT","html:Reports/cucumber-pretty","junit:target/surefire-reports/TEST-TestSuite.xml",               "com.cucumber.listener.ExtentCucumberFormatter:Reports/Reporting/Quixxi_Report.html"},
                monochrome = true,
                dryRun=false
           )
于 2019-03-28T05:08:11.953 回答