Выполнение задачи Azure Pipeline Gradle локально - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь отладить задачу Gradle в конвейере Azure, выполняя ее локально. Определение задачи по 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

1 Ответ

1 голос
/ 15 октября 2019

1.codeCoverageToolOption: JaCoCo

Для Azure Devops codeCoverageToolOption: JaCoCo означает выбрать инструмент покрытия кода JaCoCo, чтобы определить код, охватываемый тестовыми примерами. Но нет такой команды для gradle, чтобы выбрать , какой инструмент покрытия кода будет использовать.

В Gradle аналогичные операции выполняются при добавлении плагина JaCoCo в виде dependencies в build.gradle. Теперь вы можете вызвать задачу jacocoTestReport для создания отчета о покрытии кода.

./gradlew test jacocoTestReport

Примечание : задача jacocoTestReport ничего не сделает, если test.exec файл не существует. Таким образом, вы всегда должны сначала запустить задачу test или build


2. testResultsFiles

Для testResultsFiles в YAML он используется для указания файлов результатов теста, которые следует вставить. Но для 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: true

В Azure Devops мы не публикуем файл результатов теста в VSTS с помощью команды gradle. Для этого мы используем скрипт: CodeCoverage Publish .

...