Gradle 为其他模块生成覆盖范围
我的项目结构如下:Gradle 为其他模块生成覆盖范围,gradle,code-coverage,android-espresso,jacoco,Gradle,Code Coverage,Android Espresso,Jacoco,我的项目结构如下::app,:core:app是Android应用程序项目,它依赖于拥有所有业务逻辑的:core 我有Espresso测试:app,由于所有的问题和指南,我能够运行并获得覆盖率报告。但覆盖范围仅限于:app中的代码 如何获得由我的浓缩咖啡仪器测试产生的所有项目(:app和:core)的保险?这可能吗 非常感谢您的帮助。即使您在问题中没有提到Jacoco,它也列在标签中,因此我假设您希望使用它创建覆盖率报告。Gradle Jacoco插件(apply plugin:'Jacoco'
:app
,:core
<代码>:app是Android应用程序项目,它依赖于拥有所有业务逻辑的:core
我有Espresso
测试:app
,由于所有的问题和指南,我能够运行并获得覆盖率报告。但覆盖范围仅限于:app
中的代码
如何获得由我的浓缩咖啡
仪器测试产生的所有项目(:app
和:core
)的保险?这可能吗
非常感谢您的帮助。即使您在问题中没有提到Jacoco,它也列在标签中,因此我假设您希望使用它创建覆盖率报告。Gradle Jacoco插件(
apply plugin:'Jacoco'
)允许您创建类型为JacocoReport
的自定义任务
定义此类任务时,可以指定源和类目录以及执行数据:
task jacocoTestReport(type: JacocoReport) {
dependsOn // all your test tasks
reports {
xml.enabled = true
html.enabled = true
}
sourceDirectories = // files() or fileTree() to your source files
classDirectories = // files() or fileTree() to your class files
executionData = // files() or fileTree() including all your test results
}
对于浓缩咖啡测试,执行数据应包括所有生成的.ec
文件。您可以在Gradle根项目中定义此任务,并链接到子项目的文件和任务
对于自定义Jacoco报告任务,即使它旨在为多个测试类型创建统一的报告,也可以针对此多项目问题进行传输。默认情况下,
Jacoco报告任务仅报告项目内源的覆盖率。您需要在JacocoReport
任务上设置属性
app/build.gradle
apply plugin: 'java'
apply plugin: 'jacoco'
// tell gradle that :core must be evaluated before :app (so the sourceSets are configured)
evaluationDependsOn(':core')
jacocoTestReport {
def coreSourceSet = project(':core').sourceSets.main
additionalSourceDirs.from coreSourceSet.allJava
additionalClassDirs.from coreSourceSet.output
}