我正在使用EclEmma(在Eclipse内部)来扫描我的JUnit代码覆盖率。这是正常的 - 但是,我不希望EclEmma扫描我的src/view
文件夹,因为它包含我认为不值得测试的Swing代码。
当EclEmma运行时,是否有任何方法可以忽略此文件夹:a)运行速度更快,b)不会扭曲覆盖百分比?
编辑:
我的项目结构是:
src/view
src/model
src/controller
我已尝试使用“首选项”页面中的“路径条目”部分(可能是其他人):
"src/view"
"src/view/*"
"view"
"view/*"
src/view
这些是使用“首选项”页面中的“排除”部分:
*
*View*
*View*.class
src/view/*View*
src/view/*View*.class
他们都给我留下了与分析我整个src文件夹相同的结果。
答案 0 :(得分:6)
[编辑]维护人员说你不能,除了一个源目录级别:https://github.com/jacoco/eclemma/issues/70
我认为eclemma并没有排除文件:它是。只是不像我想的那样。
当您进入首选项中的排除并指定your.classes.here。*时,这意味着这些类不会计入您的所有代码,而不是那些类不会包含在需要通过测试来解决。
试一试,看看。尝试排除您知道已覆盖的课程。一旦你把它放到了排除首选项上,在新的覆盖率运行中它们仍然会在覆盖窗口中出现,但是它们将会显示为0%并且全部为红色。
如果你问我,那就没用了。我仍在寻找一个适当的解决方案,以便从需要通过测试覆盖的类中按名称排除类。答案 1 :(得分:5)
排除:应从执行中排除的类名列表 分析。列表条目用冒号(:)分隔,可以使用 通配符(*和?)。 (默认值:空)
但是,将它们的选项用于类路径匹配可能更容易:
仅匹配的路径条目:逗号分隔的字符串列表必须 与类路径条目匹配。类路径条目匹配 filter,如果它包含给定字符串之一。 (例如。 “src / main / java”,默认值:无过滤器)
请参阅eclemma - how to ignore source,了解如何忽略src文件夹。
另请注意他们的注意事项,
警告:如果您的设置与任何类路径条目都不匹配 在您的项目中,每个覆盖模式下的新发布都将有一个 空分析范围。
答案 2 :(得分:1)
我已经放弃了EclEmma,因为我不能让它去做我想要它做的事情,所以我使用了另一种方法 - 我会在这里记录它,以防它帮助其他人。