はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【C#】coverlet.collectorで生成されたファイルなどの特定ファイルをコードカバレッジ収集対象外にする

はじめに

今回はcoverlet.collectorで生成ファイルなどの特定のファイルをコードカバレッジ収集対象外にする方法を紹介したいと思います。

やり方

以下の2種類の方法があります。

  • コマンド引数(ExcludeByFileなど)を用いる
  • coverlet.runsettingsを用いる

コマンド引数を用いる

# Generatedフォルダに含まれる.csファイルはコードカバレッジ収集対象外に
$ dotnet test --collect:"XPlat Code Coverage;ExcludeByFile=**/Generated/**/*.cs;"

ExcludeByFileによりパス名を指定して対象外に指定しています。それ以外にも指定方法が複数あるので気になる方は公式Docをチェックしてみてください。
coverlet/Documentation/VSTestIntegration.md at master · coverlet-coverage/coverlet · GitHub

  • Exclude
  • ExcludeByAttribute
  • ExcludeByFile
  • Include
  • IncludeDirectory

runsettingsを用いる

また直接コマンド引数で渡すのではなく、.runsettingsファイルを配置してそれを読み込むように設定することもできます。

coverlet.runsettings

<?xml version="1.0" encoding="utf-8" ?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="XPlat code coverage">
        <Configuration>
           <ExcludeByFile>**/Generated/**/*.cs</ExcludeByFile>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>
$ dotnet test --collect:"XPlat Code Coverage" --settings coverlet.runsettings