在對Gradle的工作方式進行了大量研究之後,我得以解決了我的問題,並感謝here和此github項目here的一些示例。我需要進行一些調整才能使其與我的項目一起工作,但結果是,我可以通過命令行運行src/test /目錄中的單元測試來運行代碼覆蓋,並訪問這些生成的報告。
下面是任務看起來像我的build.gradle:
task jacocoReport(type: JacocoReport, dependsOn: 'testMockDebugUnitTest') {
group = 'Reporting'
description = 'Generate Jacoco coverage reports after running tests.'
reports {
xml.enabled = true
html.enabled = true
}
classDirectories = fileTree(
dir: 'build/intermediates/classes/test/mock/debug',
excludes: [
'**/R*.class',
'**/BuildConfig*'
]
)
sourceDirectories = files('src/main/java')
executionData = files('build/jacoco/testMockDebugUnitTest.exec')
doFirst {
files('build/intermediates/classes/test/mock/debug').getFiles().each { file ->
if (file.name.contains('$$')) {
file.renameTo(file.path.replace('$$', '$'))
}
}
}
}
的變化,我需要做:運行我的單元測試單獨由gradle這個任務testMockDebugUnitTest
做的,而jacocoReport
任務需要依靠在我的單元測試中首先完成。生成的構建樹對我來說有點不同,所以我對其進行了硬編碼.Jacoco依賴的執行數據位於由testMockDebugUnitTest
任務生成的.exec文件中,該文件也需要定義。
畢竟說完了之後,我現在可以通過命令行獲得單元測試的代碼覆蓋範圍,與我的測試測試分開進行。