我使用Gradle 1.0构建我的项目,并使用EMMA插件获取代码覆盖率信息。我想从覆盖率报告中排除某些文件。
我怎样才能做到这一点?
答案 0 :(得分:1)
您是否包含此Gradle script?我认为您可以在仪器定义中排除类(请参阅下面的示例)。但是,看起来您不能使用约定属性设置排除模式。
ant.emma(enabled: 'true', verbosity:'info'){
instr(merge:"true", destdir: emmaInstDir.absolutePath, instrpathref:"run.classpath",
metadatafile: new File(emmaInstDir, '/metadata.emma').absolutePath) {
instrpath {
fileset(dir:sourceSets.main.output.classesDir.absolutePath, includes:"**/*.class", excludes:"**/Some*.class")
}
}
}
如果我是你,我会尝试分叉插件,向EmmaPluginConvention
添加一个新字段,让您设置排除模式,然后在instrpath
定义中使用该变量。更改代码并验证其有效后,向作者发送拉取请求。我相信他会加入你的改变。
答案 1 :(得分:0)
这不适用于gradle 1.5。 Emma采用了这样的过滤器:
ant.emma(enabled: 'true', verbosity: $verbosityLevel) {
instr(merge: "true", destdir: emmaInstDir.absolutePath, instrpathref: "run.classpath",
metadatafile: new File(emmaInstDir, '/metadata.emma').absolutePath, filter: "-com.someclass.*" ) {
instrpath {
fileset(dir: sourceSets.main.output.classesDir.absolutePath, includes: "**/*.class" )
}
}
}
过滤器遵循此页面中的定义: http://emma.sourceforge.net/reference/ch02s06s02.html