Так мы генерируем покрытие кода для всего решения, используя coverlet.msbuild
.
- Ссылка
coverlet.msbuild
в каждом тестовом проекте в вашем решении. - В вашем CIСценарий, перейдите в каталог, содержащий файл вашего решения.Затем
- Запустите команду, подобную следующей (синтаксис bash)
dotnet test ##solution_filename## --logger:trx --results-directory ../TestResults \
"/p:CollectCoverage=true" \
"/p:CoverletOutput=../TestResults/" \
"/p:MergeWith=../TestResults/coverlet.json" \
"/p:CoverletOutputFormat=\"json,cobertura\""
Чтобы объединить результаты в нескольких проектах, мы генерируем два выходных формата, json и cobertura.См. Параметр /p:CoverletOutputFormat
.
. При создании покрытия кода для каждого проекта coverlet будет использовать /p:MergeWith
для объединения coverlet.json для текущего проекта с предыдущим coverlet.json.
При таком подходе был получен один файл результатов cobertura для решения, которое мы могли бы использовать позже в нашей сборке CI.