其他分享
首页 > 其他分享> > 如何从EclEmma中的coverage计算中排除类,而不实际将它们从coverage本身中排除

如何从EclEmma中的coverage计算中排除类,而不实际将它们从coverage本身中排除

作者:互联网

我正在使用EclEmma来测试我的场景测试的覆盖率并在我的项目中使用案例测试.
我有一个Base包,其中包含最常用的类和用例测试.报道如下:

Code coverage in our project

我想要的是从覆盖率计算中排除用例测试(例如BugReportTest).但我确实希望考虑其中的测试.我知道如何从覆盖范围中排除整个类,但如果我这样做,我的覆盖率会下降,因为检查我的代码的哪些行被测试的实际测试被遗忘了.由于隐私原因,这些用例测试确实需要保留在Base包中.

解决方法:

由于技术原因,可能有必要从代码覆盖率分析中排除某些类.以下选项配置coverage代理以从分析中排除某些类.除性能优化或技术角落情况外,通常不需要这些选项.

>排除:应排除的类名列表
执行分析.列表条目用冒号(:)分隔
并且可以使用通配符(*和?). (默认值:空)
>排除类加载器:应该是类加载器名称的列表
从执行分析中排除.列表条目以.分隔
冒号(:)并且可以使用通配符(*和?).这个选项
在特殊框架与之冲突的情况下可能需要
JaCoCo代码检测,特别是没有的类加载器
可以访问Java运行时类. (默认:
sun.reflect.DelegatingClassLoader)

Warning: Use these options with caution! Invalid entries might break
the code coverage launcher. Also do not use these options to define
the scope of your analysis. Excluded classes will still show as not
covered.

资源链接:

> EclEmma Code Coverage Preferences

以下示例均指定了相同的包含/排除模式集:

>< filter includes =“com.foo.*”excludes =“com.foo.test.*,
com.foo.*测试*“/>
>< filter includes =“com.foo.*”/> < filter excludes =“com.foo.test.*,
com.foo.*测试*“/>
>< filter value =“com.foo.*, - com.foo.test.*, - com.foo.* Test *”/>
< filter excludes =“com.foo.* Test *”file =“myfilters.txt”/>
其中myfilters.txt文件包含以下行:

-com.foo.test.*
 com.foo.*

资源链接:

> Coverage filters
> I am certain that all of my classes are built with -g(debug=’true’)
and yet EMMA still complains about missing debug info!

Ignore code coverage for unit tests in EclEmma

首选项 – > Java->代码覆盖率并将“仅路径条目匹配”选项设置为src / main / java – 似乎运行良好

标签:java,unit-testing,eclipse,code-coverage,eclemma
来源: https://codeday.me/bug/20191001/1837648.html