Считать общий охват покрытия dotCover из GitLab CI
Я настроил dotCover
запускаться с нашего сервера GitLab CI. Он корректно запускает тесты, выдает требуемые выходные данные, а CI настроен на сохранение выходных данных HTML покрытия в артефактах GitLab. Это работает без нареканий.
То, что я пытаюсь сделать, это прочитать общий вывод покрытия из консоли запуска dotCover.exe и проанализировать его в gitlab CI. Я прочитал документацию по dotCover, но не нашел способа вывести на консоль строку, содержащую покрытие. Gitlab CI может только читать значения покрытия из sdout задания ci, сопоставляя его с пользовательским регулярным выражением.
Это мое config.xml
:
<?xml version="1.0" encoding="utf-8"?>
<AnalyseParams>
<TargetExecutable>C:\NUnit\nunit3-console.exe</TargetExecutable>
<TargetArguments>--agents=1 MyDll.Spec.dll MyDll2.Spec.dll</TargetArguments>
<Output>cover/AppCoverageReport.html</Output>
<ReportType>html</ReportType>
<Scope>
<ScopeEntry>MyApp\bin\x86\Release\net461\MyApp.*.dll</ScopeEntry>
<ScopeEntry>MyApp\bin\x86\Release\net461\*.exe</ScopeEntry>
</Scope>
<Filters>
<ExcludeFilters>
<FilterEntry>
<ModuleMask>*.Spec</ModuleMask>
</FilterEntry>
</ExcludeFilters>
</Filters>
</AnalyseParams>
и я запускаю его с помощью.gitlab-ci.yml:
C:\dotCover\dotCover.exe analyse config.xml /TargetWorkingDir=.
Есть ли способ просмотреть это значение в GitLab CI? Я что-то упускаю из виду?
Спасибо
1 ответ
В итоге я прочитал выходной файл HTML dotCover
и анализ выходных данных. К счастью, общий охват находится в легко разбираемой части выходного файла. Регламент покрытия
'/= \[\["Total",\d+\.?\d+/'
Это мой финал .gitlab-ci.yml
файл (для Windows Runner, dotCover только для Windows):
my_job:
# your job configuration
# ...
scripts:
# build the solution here, ...
- dotCover.exe analyse dotCover.xml /TargetWorkingDir=.
- type cover\AppCoverageReport.html
coverage: '/= \[\["Total",\d+\.?\d+/'
Не очень долгосрочное решение, но оно работает пока, по крайней мере, пока я не обновлю dotCover
,