【问题标题】:Code Coverage Tool That Supports Annotation of JUnit Tests To Specify Which Method The UnitTest Covers支持 JUnit 测试注解的代码覆盖率工具,指定 UnitTest 覆盖的方法
【发布时间】:2025-11-29 07:20:01
【问题描述】:

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

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

【问题讨论】:

    标签: java junit code-coverage metrics


    【解决方案1】:

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

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

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

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

    这里可以比较它们

    http://pitest.org/java_mutation_testing_systems/

    【讨论】: