C # Msbuild покрытия кода жесткий останов, если не встретил порог - PullRequest
0 голосов
/ 29 мая 2018

У нас есть решение ac # с несколькими проектами.Проект использует msbuild для упаковки, запускает Nunit для модульного тестирования.На данный момент у нас нет определения порога покрытия кода для каждого проекта и сбой msbuild, если охват кода ниже порогового значения.Это происходит из коробки в проекте Java с использованием Maven и Cobertura в качестве плагина.Любой такой инструмент в мире точечной сети.

Мы используем - Visual Studio 2017 Professional - Msbuild 15.3.409.57025 - Resharper ultimate 2017.2 - DotNet Framework 4.6.2 - Nunit 2.5.7

1 Ответ

0 голосов
/ 31 мая 2018

Если вы используете ReSharper, вы можете использовать DotCover в качестве инструмента покрытия кода.Этот инструмент может создать отчет, который затем может быть проанализирован с целью компоновки для сбоя сборки.

<Target Name="FailBuildOnLowCoverage">

    <!-- $(DotCoverResult) is the text of the report that you obtained by reading the report file -->

    <PropertyGroup>
      <CodeCoverageValue>$([System.Text.RegularExpressions.Regex]::Match($(DotCoverResult), '(?&lt;="Total",)(.*?)(?=[,])'))</CodeCoverageValue>
      <CodeCoverageValue Condition="'$(CodeCoverageValue)' == ''">0</CodeCoverageValue>
    </PropertyGroup>


<Message Condition="'$(CodeCoverageValue)' &lt; '30'" Text="Code coverage is less than 30%!

░░░░░░░░░░░█████████████
░░░░░░░░░███░███░░░░░░██
███░░░░░██░░░░██░██████████
████████░░░░░░████░░░░░░░██
████░░░░░░░░░░██░░██████████
████░░░░░░░░░░░███░░░░░░░░░██
████░░░░░░░░░░░██░░██████████
████░░░░░░░░░░░░████░░░░░░░░█
████░░░░░░░░░░░░░███░░████░░█
█████████░░░░░░░░░░████░░░░░█
███░░░░░██░░░░░░░░░░░░░█████
░░░░░░░░░███░░░░░░░██████
░░░░░░░░░░░██░░░░░░██
░░░░░░░░░░░░███░░░░░██
░░░░░░░░░░░░░░██░░░░██
░░░░░░░░░░░░░░░███░░░██
░░░░░░░░░░░░░░░░░██░░░█
░░░░░░░░░░░░░░░░░░█░░░█
░░░░░░░░░░░░░░░░░░██░██
░░░░░░░░░░░░░░░░░░░███
" />
...