Netbeans 8.1中缺少测试覆盖率?

时间:2016-08-02 13:45:51

标签: java maven unit-testing netbeans test-coverage

我最近下载了Netbeans 8.1 here

我选择了第二个选项:“Java EE”。

但是我找不到如何为我的单元测试运行测试覆盖率。我有这个菜单:

enter image description here

这是一个Maven Web应用程序。

当我转到 工具 - > 插件 并搜索“coverage”,我有:

enter image description here

我安装了它并重新启动了IDE,我看到它正在安装插件但我的菜单没有变化。如果我在 已安装的插件 中搜索“coverage”,那么除了我刚安装的那个之外什么都没有显示...我认为Netbeans已经实现了它?我还认为Netbeans也有Maven测试覆盖率......

我读到我安装的插件( TikiOne JaCoCoverage )只是现有Netbeans测试覆盖范围的扩展..所以这可以解释为什么我看不到它。

如何启用测试覆盖率?

感谢。

3 个答案:

答案 0 :(得分:12)

您应该将JaCoCo插件添加到pom.xml文件的<plugins>部分。

        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.7.201606060606</version>
            <executions>
                <execution>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

构建项目后,右键单击项目时会出现代码覆盖率菜单项的菜单项。

Netbeans Code Coverage Menu

最后,您可以从菜单中选择显示报告。所有内容都被描述为here

答案 1 :(得分:1)

遗憾的是,这很少有文档记录,但对我来说,当我手工添加JaCoCo Maven插件时出现菜单条目:

<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.7.201606060606</version>
    <executions>
        <execution>
            <id>default-prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>default-report</id>
            <phase>prepare-package</phase>
            <goals>
                <goal>report</goal>
            </goals>
        </execution>
        <execution>
            <id>default-check</id>
            <goals>
                <goal>check</goal>
            </goals>
            <configuration>
                <rules><!-- implementation is needed only for Maven 2 -->
                    <rule implementation="org.jacoco.maven.RuleConfiguration">
                        <element>BUNDLE</element>
                        <limits><!-- implementation is needed only for Maven 2 -->
                            <limit implementation="org.jacoco.report.check.Limit">
                                <counter>COMPLEXITY</counter>
                                <value>COVEREDRATIO</value>
                                <minimum>0.01</minimum>
                            </limit>
                        </limits>
                    </rule>
                </rules>
            </configuration>
        </execution>
    </executions>
</plugin>

maven目标verify运行覆盖率报告。您还可以使用官方文档中提到的覆盖窗口。

不幸的是插件或集成看起来有点儿麻烦,因为你可以运行测试并在Test Results NB窗口中看到它的结果,或者看看覆盖范围......似乎有两种运行测试的方法和我还没有找到同时做到这两点的方法。

答案 2 :(得分:0)

请记住,在安装插件并将此信息添加到pom中之后,右键单击程序包可能会看到选项代码覆盖率。 但是,正如javaeeeee的回答所说,您应该再次构建项目以查看实际覆盖范围。