В других сборках я вижу следующее, чего и хочу. Желаемый результат Эта рабочая сборка использует VSTest.
Сборка, над которой я пытаюсь добиться покрытия кода, использует Npm@1
'run test-with-coverage'
для создания покрытия и PublishCodeCoverageResults@2
для публикации с помощью summaryFileLocation: '$(System.DefaultWorkingDirectory)/coverage/cobertura-coverage.xml'
.
Я вижу вкладку «Покрытие кода» с правильными данными о покрытии, но на сводном экране вижу только «Начать» Нежелательный результат
Я искал в Google и Bing и обсуждал это со вторым пилотом. Я обновил конвейер с PublishCodeCoverageResults@1 до PublishCodeCoverageResults@2.
Я могу воспроизвести то же самое на своей стороне. Задача PublishCodeCoverageResults@2
используется для публикации результата покрытия кода, а не результата теста.
Вы можете добавить задачу PublishTestResults@2, чтобы опубликовать результат теста.
Убедитесь, что у вас есть результат теста (TEST-RESULTS.xml), сгенерированный в задаче Npm@1
run test-with-coverage
.
Например, мой package.json для задачи npm test
:
{
"name": "HelloWorld",
"private": true,
"version": "0.0.0",
"description": "Hello World",
"main": "server.js",
"author": {
"name": "",
"email": ""
},
...
"scripts": {
"test": "nyc --reporter=cobertura --reporter=html ./node_modules/.bin/mocha tests/**/*.js --reporter mocha-junit-reporter --reporter-options mochaFile=./TEST-RESULTS.xml"
}
}
Образец Ямла:
- task: Npm@1
displayName: 'npm test'
inputs:
command: custom
customCommand: 'test'
- task: PublishTestResults@2
inputs:
testResultsFiles: '**/TEST-RESULTS.xml'
testRunTitle: 'Test results for JavaScript'
- task: PublishCodeCoverageResults@2
inputs:
summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/*coverage.xml'