【问题标题】:How to exclude classes from the coverage calculation in EclEmma without actually excluding them from the coverage itself如何从 EclEmma 中的覆盖率计算中排除类而不实际将它们从覆盖率本身中排除
【发布时间】:2016-08-28 12:16:07
【问题描述】:

我正在使用 EclEmma 来测试我的场景测试和项目用例测试的覆盖率。 我有一个 Base 包,其中包含最通用的类​​和用例测试。覆盖范围如下所示:

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

【问题讨论】:

    标签: java eclipse unit-testing code-coverage eclemma


    【解决方案1】:

    出于技术原因,可能需要从代码覆盖率分析中排除某些类。以下选项将覆盖代理配置为从分析中排除某些类。除了性能优化或技术极端情况外,通常不需要这些选项。

    1. 排除:应排除的类名列表 执行分析。列表条目由 colon (:) 分隔 并且可以使用wildcard characters (* and ?). (Default: empty)

    2. 排除类加载器:应包含的类加载器名称列表 从执行分析中排除。列表条目由 colon (:) 并且可以使用 wildcard characters (* and ?)。这个选项 如果特殊框架与 JaCoCo 代码检测,特别是不支持的类加载器 可以访问 Java 运行时类。 (Default: sun.reflect.DelegatingClassLoader)

    警告:谨慎使用这些选项!无效条目可能会中断 代码覆盖率启动器。也不要使用这些选项来定义 你的分析范围。 排除的课程仍将显示为不 覆盖。

    资源链接:

    1. EclEmma Code Coverage Preferences

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

    1. <filter includes="com.foo.*" excludes="com.foo.test.*, com.foo.*Test*" />
    2. <filter includes="com.foo.*" /> <filter excludes="com.foo.test.*, com.foo.*Test*" />
    3. <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.*

    资源链接:

    1. Coverage filters
    2. 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

    Preferences-&gt;Java-&gt;Code Coverage 并将"Only path entries matching" 选项设置为src/main/java - 似乎工作得很好

    【讨论】:

    • 尽早给予赏金 :p 这对我不起作用。测试在同一个文件夹中,因此无法排除...如果我通过使用排除排除它们,则不会运行测试,但我需要它们运行以覆盖其他类...跨度>
    • @CedricCornelis 其实我已经提供了排除程序。我还提供了一些有用的链接。你可以通过这个。
    • @SkyWalker In Excludes: section we have to give the classname/package name , 你能举个例子吗,我的意思是类名/包应该是 com.abc,SomeClass.java 还是 com .abc/SomeClass.java
    猜你喜欢
    • 2017-07-23
    • 1970-01-01
    • 2015-08-24
    • 2013-08-14
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多