我正在尝试通过在本地运行Azure管道来调试Gradle任务。该任务的YAML定义是:
- task: Gradle@2
displayName: 'Test Project'
inputs:
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx7000m'
sonarQubeRunAnalysis: true
sonarQubeGradlePluginVersion: 2.6.2
testRunTitle: $(DISPLAY_NAME)
codeCoverageToolOption: JaCoCo
publishJUnitResults: true
testResultsFiles: '**/build/test-results/test/TEST-*.xml'
tasks: "test -Dtest.profile=unit --parallel"
我正在尝试找出等效的本地命令。我已经达到了
./gradlew test -DcodeCoverageToolOption=JaCoCo -Dtest.profile=unit --parallel
但是,我不确定如何传递其他参数,例如codeCoverageToolOption: JaCoCo
答案 0 :(得分:1)
1.codeCoverageToolOption:JaCoCo
对于Azure Devops,codeCoverageToolOption: JaCoCo
意味着选择代码覆盖率工具JaCoCo
来确定测试用例覆盖的代码。但是,没有这样的命令可以让选择选择要使用的代码覆盖率工具。
在gradle中,类似的操作是首先在JaCoCo
中将dependencies
插件添加为build.gradle
。现在,您可以调用jacocoTestReport
任务来创建代码覆盖率报告。
./gradlew test jacocoTestReport
注意 :如果jacocoTestReport
文件不存在,test.exec
任务将不执行任何操作。因此,您应该始终先运行test
或build
任务
2。 testResultsFiles
对于YAML中的testResultsFiles
,它用于指定应放入的测试结果文件。但是,对于gradle而言,其默认路径为build/reports/jacoco/test/html/index.html
,该文件在您的build.gradle
文件中指定。简单示例:
task codeCoverageReport(type: JacocoReport) {
executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
subprojects.each {
sourceSets it.sourceSets.main
}
reports {
xml.enabled true
xml.destination "${buildDir}/reports/jacoco/{TestResultFileName}.xml"
html.enabled false
csv.enabled false
}
}
3。 publishJUnitResults:是
在azure devops中,我们不使用gradle命令将测试结果文件发布到VSTS中。我们使用脚本CodeCoverage Publish来实现此目的。