我使用以下命令和 pom.xml 片段对黄瓜案例运行集成测试(例如:在功能文件中使用 tag@abc)-
pom.xml 片段:
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.11</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<skip>false</skip>
<includes>
<include>**/*.class</include>
</includes>
<systemPropertyVariables>
<job.host.name>server-t10</job.host.name>
<job.email.notification>abc@abc.com</job.email.notification>
<cucumber.options>--format pretty --format
html:target/cucumber/cucumber-html</cucumber.options>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
...
mvn 命令运行测试用例:
mvn clean integration-test -Dcucumber.options="--format pretty --format html:target/cucumber/cucumber-html1 --tags @abc" -Djob.host.name=server-t10
在执行案件并生成所有报告的情况下,每件事都可以正常工作。当我试图获得测试用例的覆盖率时,问题就出现了。
我尝试了所有可能的组合,以使用 cobertura-maven-plugin 和 version2.5.2(不使用 ant instrumnet/report)生成 cobertura 覆盖率报告,但它只是不创建任何报告,也不创建任何 .ser 文件或任何东西。只有日志说 - 没有要检测的文件并且什么都不做。
失败了,我终于下载了 cobertura (1.9.4.1) 并创建了自定义 cobertura.xml。当我为 ex 运行以下 ant 命令时 -
ant -f cobertura.xml instrument
mvn clean integration-test -Dcucumber.options="--format pretty --format html:target/cucumber/cucumber-html1 --tags @abc" -Djob.host.name=server-t10
ant -f cobertura.xml report
幸运的是,它创建了所有的报告/.ser 文件等。但是,在运行所有这些文件之后,它在所有使用的类的最终覆盖率报告中显示为零覆盖率。这可能是因为(我认为) mvn 命令没有使用/操作由 ant instrument 创建的 cobertura.ser。
所以,请帮我解决这个问题,我在 pom.xml 中放置了什么内容和位置,以便当我运行 mvn 命令时,它使用检测文件(由 ant insturment 命令生成的输出)并更新它。这样我就可以使用该文件使用 ant 报告生成报告。我尝试将所有可能的条目放在 pom.xml 中。但它没有帮助。
注意:我正在寻找这个特殊的解决方案,因为我所有的努力都浪费在使 cobertura-maven-plugin 工作上。我不知道原因,但是这个插件不适用于我创建报告甚至运行案例。