我使用 Gradle 1.0 构建我的项目,并使用 EMMA 插件获取代码覆盖率信息。我想从覆盖率报告中排除某些文件。
我怎样才能做到这一点?
我使用 Gradle 1.0 构建我的项目,并使用 EMMA 插件获取代码覆盖率信息。我想从覆盖率报告中排除某些文件。
我怎样才能做到这一点?
你包括这个Gradle 脚本吗?我认为您可以在仪器定义中排除类(参见下面的示例)。但是,您似乎无法使用约定属性设置排除模式。
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
定义中使用该变量。更改代码并验证其是否有效后,向作者发送拉取请求。我相信他会接受你的改变。
这不适用于 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