黄瓜和junit在jenkins中有错误的测试数量(surefire)

时间:2012-11-12 09:40:44

标签: maven junit jenkins cucumber surefire

当我尝试通过Maven(surefire)一起使用Cucumber和Junit时,报告的测试数量错误。我只有250次测试,但Jenkins给我看了1200次测试。因此,当我调查它时,我发现只有一个引用是surefire插件的问题。

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

如何纠正?

3 个答案:

答案 0 :(得分:1)

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

  1. 需要将Cucumber的junit报告创建到某个文件夹(1)'cucumber'
  2. 将surefire报告(不包括由surefire生成的Cucmber报告)复制到某个文件夹(2)'surefire-reports-fixed',其中黄瓜生成报告。
  3. 从(1)到(2)
  4. 复制黄瓜junit报告
  5. jenkins必须使用文件夹(2)'surefire-reports-fixed'
  6. 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 {
     ...
    }
    

    在jenkins中将surefire文件夹设置为(2)'surefire-reports-fixed'

答案 1 :(得分:0)

以下链接似乎是相关的。

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

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

单独的问题,在评论中讨论了将计数步骤作为测试更改为计算方案作为junit测试的修正将即将发布,但与Gherkin 3开发工作有关:

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

答案 2 :(得分: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
           )