我最近下载了Netbeans 8.1 here
我选择了第二个选项:“Java EE”。
但是我找不到如何为我的单元测试运行测试覆盖率。我有这个菜单:
这是一个Maven Web应用程序。
当我转到 工具 - > 插件 并搜索“coverage”,我有:
我安装了它并重新启动了IDE,我看到它正在安装插件但我的菜单没有变化。如果我在 已安装的插件 中搜索“coverage”,那么除了我刚安装的那个之外什么都没有显示...我认为Netbeans已经实现了它?我还认为Netbeans也有Maven测试覆盖率......
我读到我安装的插件( TikiOne JaCoCoverage )只是现有Netbeans测试覆盖范围的扩展..所以这可以解释为什么我看不到它。
如何启用测试覆盖率?
感谢。
答案 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>
构建项目后,右键单击项目时会出现代码覆盖率菜单项的菜单项。
最后,您可以从菜单中选择显示报告。所有内容都被描述为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的回答所说,您应该再次构建项目以查看实际覆盖范围。