1

我将 Jenkins 和 Buckminster 用于 CI 的 rcp 应用程序,这就像一个魅力。我遇到的唯一问题是 buckminster emma 任务对签出工作区中的所有包进行代码覆盖。我想指定一个排除过滤器,因为这是为 ant 任务描述的,但没有让它工作。buckminster emma help 命令也没有帮助我。我的工作区中有几个插件,单元测试是为我自己的包指定的。但是有一个插件包括源文件,我不希望 emma 考虑代码覆盖率,因为这是一个外部包。我的 JUnittests 也不包括这个包。

我如何实现这一点以在一个插件中排除这个包/类?

例子:

  • 插件 A(外部)
  • 插件 B(自己的)
  • 插件 C(包含单元测试)

我使用的命令如下:

importtargetdefinition -A '${WORKSPACE}/de.plugin.site/plugin.target'
import '${WORKSPACE}/de.plugin.site/site.cquery'
build
perform -D target.os=* -D target.ws=* -D target.arch=* de.plugin.site#site.p2
perform -D target.os=win32 -D target.ws=win32 -D target.arch=x86 de.plugin.site#create.product.zip

emma -l '/de.plugin.test/AllBuckminsterTests.launch' -o '${WORKSPACE}output/junit_result.xml' --xml '${WORKSPACE}/output/coverage_report.xml' --flatXML

`

我尝试了--define 'filter=-de.external.*'buckminster emma help 中给出的参数,但没有成功。

任何帮助都会很棒!

4

4 回答 4

0

Did you ask this in the Buckminster forum at Eclipse?

于 2011-03-21T11:59:21.293 回答
0

启动文件可以是标准启动文件,但您可能希望使用 EclEmma IDE 工具创建一个特定于 emma 的启动配置,因为这使您能够控制要包含在覆盖率检测中的类和包。

将您的测试类放在一个单独的测试源文件夹中。

于 2013-04-09T13:59:08.697 回答
0

不幸的是(对我来说),这是另一件事也不起作用。使用 EclEmma 插件或手动,将以下内容添加到启动配置中:

<listAttribute key="com.mountainminds.eclemma.core.SCOPE_IDS">
<listEntry value="=project1/src"/>
<listEntry value="=project2/gen"/>
<listEntry value="=project2/src"/>
</listAttribute>

这适用于交互式 Emma(在 Eclipse 中),但 Bucky 似乎忽略了它。

于 2012-02-15T12:06:13.007 回答
0

您必须使用 Jenkins/Hudson Jacoco 插件设置排除/包含过滤器;如果我没记错的话,使用 EclEmma UI 插入的启动配置中的条目由 Buckminster 提供(如果生成 html 输出,您应该会看到),但是如果您希望在 CI 中报告 Jacoco 报告,则需要在相应的配置中配置排除/包含构建后操作。顺便说一句,Jacoco 插件现在只适用于 .exec 文件,因此您需要使用 -exec 运行“emma”命令。

于 2014-05-07T17:15:01.773 回答