我使用以下命令和pom.xml片段运行与黄瓜案例的集成测试(例如:在功能文件中使用标签@ 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 tool创建的cobertura.ser。
所以,请帮助我,在我的pom.xml中放置什么内容,以便当我运行mvn命令时,它使用检测文件(由ant insturment命令生成的输出)并更新它。这样我就可以使用该文件来生成使用ant报告的报告。我尝试将所有可能的条目放在pom.xml中。但它没有帮助。
注意:我正在寻找这个特殊的解决方案,因为我所有的努力都在努力使cobertura-maven-plugin工作。我不知道原因,但这个插件对于我创建报告甚至运行案例都不起作用。