Недавно я начал работать с C# и сейчас работаю над одной из существующих у нас устаревших систем. Я пытаюсь выяснить, каково покрытие кода этой устаревшей системы. Вот мой файл Sample.UnitTests.csproj:
Код: Выделить всё
netcoreapp3.0
false
runtime; build; native; contentfiles; analyzers; buildtransitive
all
Я провел небольшое исследование и обнаружил, что мы можем использовать Coverlet, который может генерировать отчет в стиле cobertura. Я выполнил именно то, что указано здесь, на своем компьютере Mac, и все работает нормально, и я вижу, что отчет создается правильно на моей консоли, а также генерирует файл index.html, который мы также можем использовать для визуализации.
Код: Выделить всё
dotnet add package coverlet.msbuild
dotnet restore
dotnet build
dotnet test /p:CollectCoverage=true
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:Exclude="[xunit*]\*" /p:CoverletOutput="./TestResults/"
dotnet reportgenerator "-reports:TestResults/coverage.cobertura.xml" "-targetdir:TestResults/html" -reporttypes:HTML;
Теперь, поскольку мы используем конвейер gitlab ci/cd для нашего проекта, могу ли я как-нибудь сделать эту часть моего .gitlab-ci.yml< /code>, чтобы он мог автоматически генерировать для меня отчет всякий раз, когда происходит сборка, и все в моей команде могли его успешно видеть. Поскольку на данный момент все это выполняется вручную, так как мне нужно запустить указанные выше команды на моем локальном компьютере Mac, и я могу увидеть их со своей консоли, только щелкнув файл index.html.
Это мои этапы работы с файлом .gitlab-ci.yml, как показано ниже. При необходимости я также могу предоставить свой файл yml, но любой простой пример, демонстрирующий, как я могу это сделать, будет очень полезен. Я много пробовал искать и вообще не смог найти информацию о том, как это сделать с помощью конвейера gitlab, который использует отчет в стиле Coverlet и cobertura для приложений .net.
Код: Выделить всё
stages:
- test
- publish
- increment
- deploy
- integrationTests
- release
Можно ли это сделать и через вебхук, если необходимо?
Подробнее здесь:
https://stackoverflow.com/questions/621 ... plications