Hudson/Jenkins:巴克敏斯特艾玛:如何排除包
我使用 Jenkins 和 Buckminster 作为 CI 的 rcp 应用程序,这就像一个魅力。我遇到的唯一问题是巴克敏斯特艾玛任务对签出工作区中的所有包进行代码覆盖。 我想指定一个排除过滤器,因为这是为 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.*' 在巴克敏斯特艾玛帮助中给出,但没有成功。
任何帮助都会很棒!
I use Jenkins and Buckminster for rcp app for CI and this works like a charme. The only problem I have is that the buckminster emma task does the code coverage for ALL packages in the checked-out workspace.
I would like to specify an exclude filter as this is described for the ant task but did not get it working.
The buckminster emma help command didn't helped me neither. I have several plugins in my workspace, the unit tests are specified for my own packages. But there is one plugin including source files which I do not want emma to take into account for code coverage as this is an external package. My JUnittests also do not cover this package.
How do I achieve this to exclude this package/classes in the one plugin?
Example:
- plugin A (external)
- plugin B (own)
- plugin C (containing unit tests)
The commands I use is the following:
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
`
I tried the parameter --define 'filter=-de.external.*'
given in the buckminster emma help but without success.
Any help would be great!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您是否在 Eclipse 的 Buckminster 论坛中问过这个问题?
Did you ask this in the Buckminster forum at Eclipse?
不幸的是(对我来说),还有另一件事也不起作用。
使用 EclEmma 插件或手动将以下内容添加到启动配置中:
这适用于交互式 Emma(在 Eclipse 中),但 Bucky 似乎忽略了它。
Here's another thing which also doesn't work, unfortunately (for me).
Using the EclEmma plugin or manually, add the following to the launch config:
This works for the interactive Emma (in Eclipse), but Bucky seems to ignore it.
启动文件可以是标准启动文件,但您可能希望使用 EclEmma IDE 工具创建 emma 特定的启动配置,因为这使您能够控制要包含在覆盖率检测中的类和包。
将您的测试类放在单独的测试源文件夹中。
The launch file can be a standard launch file, but you may want to create an emma specific launch configuration using the EclEmma IDE tools as this enables you to control which classes and packages to include in the coverage instrumentation.
Put your Test classes in a separate test-source-folder.
您必须使用 Jenkins/Hudson Jacoco 插件设置排除/包含过滤器;如果我没记错的话,Buckminster 会尊重使用 EclEmma UI 插入的启动配置中的条目(如果生成 html 输出,您应该会看到这一点),但是如果您希望 CI 中出现 Jacoco 报告,则需要在相应的配置中配置排除/包含构建后操作。顺便说一句,Jacoco 插件现在仅适用于 .exec 文件,因此您需要使用 -exec 运行“emma”命令。
You must set exclusion/inclusion filter using the Jenkins/Hudson Jacoco plugin; if I remember correctly, the entries in the launch configuration inserted using EclEmma UI are honored by Buckminster (you should see that if you generate html output), but if you want Jacoco report in the CI you need to configure exclusion/inclusion in the corresponding post build action. By the way, Jacoco plugin now works only with .exec files, so you need to run the 'emma' command using -exec.