Netbeans 8.1 中缺少测试覆盖率?

Test coverage missing in Netbeans 8.1?

我最近下载了 Netbeans 8.1 here

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

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

这是一个 Maven Web 应用程序。

当我转到 工具 -> 插件 并搜索 "coverage",我有这个:

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

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

如何启用测试覆盖率?

谢谢。

不幸的是,这几乎没有记录,但对我来说,当我手动添加 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运行覆盖率报告。您还将获得官方文档中提到的 window 覆盖范围。

不幸的是,插件或集成似乎有点问题,因为您可以 运行 测试并在测试结果 NB window 中查看其结果,或者查看覆盖率...似乎是 运行ning 测试的两种方式,我还没有找到同时进行这两种测试的方法。

您应该将 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>

生成项目后,右键单击项目时会出现 代码覆盖率 菜单项。

最后,您可以从菜单中select 显示报告。一切都描述 here.

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