java - 支持 JUnit 测试注释的代码覆盖工具,用于指定 UnitTest 覆盖哪种方法

标签 java junit code-coverage metrics

我正在寻找类似于 PHPUnit 的 Java 的“Specifying Covered Methods”。这意味着代码覆盖率工具附带了 JUnit 测试的注释,以便我可以指定哪个 JUnit 测试测试哪个方法。

这样做的效果是在覆盖的行上进行更正确的度量,因为只计算指定方法的行,而不计算整个应用程序的所有执行行。

最佳答案

这种方法听起来好像会给程序员带来沉重的负担。它要么假设测试和方法之间存在 1:1 对应关系(这违背了通常的建议,即考虑测试类而不是方法的行为),要么要求程序员通过私有(private)方法等手动跟踪路径随着代码的重构和变化,每个入口点都会随着时间的推移而变化。

很难看出如何通过类型安全来实现这一点 - 快速自动化操作(例如方法重命名)需要手动步骤来更新测试中的注释。

如果您的要求是更准确地估计测试套件的有效性,您可能会考虑的另一种方法是突变测试。这会将错误植入您的代码中,然后检查您的套件是否能够检测到它们。

有许多系统可用于 Java,包括

此处提供了它们的比较

http://pitest.org/java_mutation_testing_systems/

关于java - 支持 JUnit 测试注释的代码覆盖工具,用于指定 UnitTest 覆盖哪种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13901564/

相关文章:

java - OpenEJB 和 JUnit : Sessioncontext. isCallerInRole 始终返回 false

java - 使用 Junits 测试线程

java - Selenium 测试运行不会保存 cookie?

dart - 如何获取被测文件的覆盖率报告?

Xcode 7.0 和 7.1,代码覆盖开启,单元测试崩溃 "cannot merge previous GCDA file: corrupt arc tag"

c++ - 如何在 Windows 上使用 gtest 获得代码覆盖率?

java - 是否可以通过 jboss-deployment-struction.xml 配置 JPA 2.1,为 Spring 4 和 Hibernate 4.3.10 配置 JBoss EAP 6.4.x?

java - 图像未显示在 JFrame 中

Java,不同对象的重复逻辑 block ,清理代码

java - 如何跟踪 junit 测试中的值?