5

我正在使用 EclEmma(Eclipse 内部)扫描我的 JUnit 代码覆盖率。这可以正常工作 - 但是,我不希望 EclEmma 扫描我的src/view文件夹,因为它包含我认为不值得测试的 Swing 代码。

当 EclEmma 运行时,是否有任何方法可以忽略此文件夹,以便:a) 运行得更快,并且 b) 不会扭曲覆盖率?

编辑:

我的项目结构是:

src/view
src/model
src/controller

我已经在 Preferences 页面中的 Path Entries 部分尝试了这些(可能还有其他):

"src/view"
"src/view/*"
"view"
"view/*"
src/view

这些正在使用“首选项”页面中的“排除”部分:

*
*View*
*View*.class
src/view/*View*
src/view/*View*.class

他们都给我留下了分析我整个 src 文件夹的相同结果。

4

3 回答 3

6

[编辑] 维护人员说你不能,除了源目录级别:https ://github.com/jacoco/eclemma/issues/70

我认为 eclemma 不排除文件:它是。只是不像我想的那样。

例如,当您进入首选项中的排除项并指定 your.classes.here.* 时,这意味着这些类不会计入您覆盖所有代码,而不是这些类不会包含在需要包含的内容中被测试覆盖。

试试看。尝试排除您知道其中包含的课程。一旦您将其置于排除首选项中,在新的覆盖范围运行中,它们仍会出现在覆盖窗口中,但它们会显示为 0%,并且都将显示为红色。

如果你问我,那是没用的。我仍在寻找一种适当的解决方案,以从需要被测试覆盖的类中按名称排除类。

于 2013-12-02T22:05:03.250 回答
5

您可以指定一个排除字段

排除:应从执行分析中排除的类名列表。列表条目由冒号 (:) 分隔,并且可以使用通配符(* 和 ?)。(默认:空)

但是,使用它们的选项进行类路径匹配可能更容易:

只有路径条目匹配:必须与类路径条目匹配的逗号分隔字符串列表。如果类路径条目包含给定字符串之一,则它与过滤器匹配。(例如“src/main/java”,默认:无过滤器)

请参阅eclemma - 如何忽略 有关如何忽略 src 文件夹的源代码。

也请注意他们的谨慎,

警告:如果您的设置与项目中的任何类路径条目都不匹配,则覆盖模式下的每次新启动都将具有空的分析范围。

于 2013-01-21T22:57:50.250 回答
1

我已经放弃了 EclEmma,因为我无法让它做我想做的事情,所以我使用了不同的方法 - 我会在这里记录它以防它帮助其他人。

  1. 为了从测试中排除类,我将所有测试类命名为 *Case.java,然后通过 SuiteClasses 包含或排除它们。您可以在https://github.com/junit-team/junit4/wiki/Aggregating-tests-in-suites阅读更多相关信息
  2. 为了测量覆盖率,我使用 Maven 和 Cobertura。这将仅测试我的测试套件中指定的文件并相应地生成覆盖率报告。
于 2017-01-13T11:27:48.143 回答