Как показано в сообщении об ошибке, ему нужно coverage.cobertura.xml
, но оно не найдено. (Не сгенерировано!)
В вашем скрипте reportgenerator -reports:$(Build.SourcesDirectory)\TestResults\Coverage\coverage.cobertura.xml - ...
. coverage.cobertura.xml
- ожидаемый входной файл, но он не сгенерирован. По моему опыту, это потому, что ваша задача dotnet test
не сгенерировала этот файл успешно.
Я полагаю, что ваша задача dotnet test
может быть успешно выполнена без каких-либо ошибок, но если мы проверим журнал, мы сможем его найти. создать ожидаемый coverage.cobertura.xml
файл. Для выяснения причины проблемы вы можете обратиться к этому документу :
VSTest Integration
Если вы используете команду dotnet add package coverlet.collector
для добавления coverlet.collector
пакет для вашего проекта, вы должны использовать команду dotnet test --collect:"XPlat Code Coverage"
для создания coverage.cobertura.xml
файла, содержащего результаты.
MSBuild Integration
И если вы добавите coverlet.msbuild
пакет для вашего проекта, используя dotnet add package coverlet.msbuild
. Затем вам нужно включить покрытие кода следующим образом: dotnet test /p:CollectCoverage=true
. И после запуска вышеуказанной команды будет создан файл coverage.json
, содержащий результаты.
Поскольку в приведенном ниже сценарии для команды do tnet test требуется файл coverage.cobertura.xml
, вам следует использовать VSTest Интеграция , и это означает, что вы должны использовать команду dotnet test --collect:"XPlat Code Coverage"
вместо dotnet test /p:CollectCoverage=true
. Имеет смысл сгенерировать отсутствующий файл.
Примечание:
1. В моем тесте задача dotnet test
не выдаст никакой ошибки, хотя покрытие кода отчет не генерируется. Мы всегда можем проверить журнал задач на предмет реальной информации, которая нам нужна.
2. Кроме того, проверьте этот документ вы можете найти: *If you're building on the Windows platform, code coverage metrics can be collected by using the built-in coverage data collector.*
и *If you're building on Linux or macOS, you can use Coverlet or a similar tool to collect code coverage metrics.*
. Поэтому, в соответствии с содержанием вашего скрипта, рекомендуется запускать в Linux или агентах macOS. Если вы просто хотите, чтобы он работал в windows, у него есть встроенный сборщик данных покрытия по умолчанию.
Надеюсь, что все вышеперечисленное поможет решить вашу загадку и оригинальную проблему.