我正在使用 EclEmma 来测试我的项目的场景测试和用例测试的覆盖率。我有一个 Base 包,其中包含最通用的类和用例测试。覆盖范围如下所示:
我想要的是从覆盖率计算中排除用例测试(例如 BugReportTest)。但我确实希望考虑其中的测试。我知道如何从覆盖范围中排除整个类,但如果我这样做,我的覆盖率百分比会下降,因为检查我的代码的哪些行被测试的实际测试被遗忘了。由于隐私原因,这些用例测试确实需要保留在 Base 包中。
我正在使用 EclEmma 来测试我的项目的场景测试和用例测试的覆盖率。我有一个 Base 包,其中包含最通用的类和用例测试。覆盖范围如下所示:
我想要的是从覆盖率计算中排除用例测试(例如 BugReportTest)。但我确实希望考虑其中的测试。我知道如何从覆盖范围中排除整个类,但如果我这样做,我的覆盖率百分比会下降,因为检查我的代码的哪些行被测试的实际测试被遗忘了。由于隐私原因,这些用例测试确实需要保留在 Base 包中。
由于技术原因,可能有必要从代码覆盖率分析中排除某些类。以下选项将覆盖代理配置为从分析中排除某些类。除了性能优化或技术极端情况外,通常不需要这些选项。
排除:应从执行分析中排除的类名列表。列表条目由 a 分隔colon (:)
,可以使用wildcard characters (* and ?). (Default: empty)
排除类加载器:应从执行分析中排除的类加载器名称列表。列表条目由 a 分隔,colon (:)
并且可以使用wildcard characters (* and ?)
. 如果特殊框架与 JaCoCo 代码检测发生冲突,尤其是无法访问 Java 运行时类的类加载器,则可能需要此选项。(Default:
sun.reflect.DelegatingClassLoader)
警告:谨慎使用这些选项!无效条目可能会破坏代码覆盖率启动器。也不要使用这些选项来定义分析范围。排除的课程仍将显示为未涵盖。
<filter includes="com.foo.*" excludes="com.foo.test.*,
com.foo.*Test*" />
<filter includes="com.foo.*" /> <filter excludes="com.foo.test.*,
com.foo.*Test*" />
<filter value="+com.foo.*, -com.foo.test.*, -com.foo.*Test*" />
其中 myfilters.txt 文件包含以下行:
<filter excludes="com.foo.*Test*" file="myfilters.txt" />
-com.foo.test.*
+com.foo.*
Preferences->Java->Code Coverage
并将"Only path entries matching"
选项设置为src/main/java
- 似乎工作得很好