2

我使用以下命令和 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 工作上。我不知道原因,但是这个插件不适用于我创建报告甚至运行案例。

4

0 回答 0