5

我最近在这里下载了 Netbeans 8.1

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

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

在此处输入图像描述

这是一个 Maven Web 应用程序。

当我转到工具- >插件并搜索“覆盖”时,我有这个:

在此处输入图像描述

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

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

如何启用测试覆盖率?

谢谢。

4

3 回答 3

17

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

        <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>

构建项目后,右键单击项目会出现Code Coverage菜单项的菜单项。

Netbeans 代码覆盖率菜单

最后,您可以从菜单中选择显示报告。一切都在这里描述。

于 2016-10-12T17:31:47.830 回答
2

不幸的是,这几乎没有记录,但对我来说,当我手动添加 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运行覆盖率报告。如官方文档中所述,您还将拥有覆盖窗口。

不幸的是,插件或集成似乎有点问题,因为您可以运行测试并在“测试结果 NB”窗口中查看其结果,或者查看覆盖范围......似乎有两种运行测试的方法,而我没有找到了同时做这两件事的方法。

于 2016-09-05T10:19:45.713 回答
0

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

于 2018-07-20T15:37:36.170 回答