JaCoCo如何/何时创建.exec文件?



这是我build.gradleJaCoCo的配置,我的项目(app(包含一个library模块,该模块是指定此JaCoCo配置的位置,因为app只包含Application类。

task jacocoTestReport(type: JacocoReport, dependsOn: 'testDebugUnitTest') {
reports {
xml.enabled = true
html.enabled = true
}
def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*']
def debugTree = fileTree(dir: "${buildDir}/intermediates/classes/debug", excludes: fileFilter)
def mainSrc = "${project.projectDir}/src/main/java"
sourceDirectories = files([mainSrc])
classDirectories = files([debugTree])
executionData = files("${buildDir}/jacoco/testDebugUnitTest.exec")
}

但是,我不确定如何/何时首次创建testDebugUnitTest.exec,因为我像这样执行构建:

./gradlew clean jacocoTestReport

并且由于上述命令中的clean.exec被消灭。现在,我手动将其复制到该位置,因为我不了解该.exec如何/何时生成。

这是我运行此命令时在 logcat 中的输出:

任务:我的图书馆:jacoco测试报告跳过 14:10:16.642 [DEBUG] [org.gradle.internal.progress.DefaultBuildOperationExecutor] 生成操作 'Task :myLibrary:jacocoTestReport' 开始 14:10:16.642 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] 开始执行任务 ':myLibrary:jacocoTestReport' 14:10:16.642 [INFO] [org.gradle.api.internal.file.collections.DirectoryFileTree] 文件或目录 '/path/code/android/myLibrary/build/jacoco',未找到

多亏了这篇文章,我了解到execec是在我们第一次运行jacocoTestReport任务(在build.gradle中定义(时创建的:

现在,每次运行测试时,都会执行这些任务,jacoco 将以特定格式为这组测试生成覆盖率报告的原始文件。执行单元测试和插桩测试的 ec,您可以在构建文件夹中找到它们。

最新更新