1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C#】xUnitの導入とカバレッジレポートの出力方法

Posted at

今回は、C#のコンソールアプリケーションでxUnitの設定とカバレッジレポートの出力までを解説します。

image.png

xUnitプロジェクトの作成

ソリューションプロジェクトの上で右クリックして、[追加]⇒[新しいプロジェクト]を選択します。
image.png

新しいプロジェクトで「xUnitプロジェクト」を選択します。
image.png

すると、下記のようにxUnitプロジェクトが作成されます。
image.png

テストしたいコードを作成

つづいて、テストしたいコードを書いていきます。
簡単ですが、下記のプログラムを作成しました。
image.png

Program.cs
namespace Calculator 
{
    public class CalculatorClass
    {
        static void Main(string[] args) 
        {
            
        }
        public int add(int a, int b) 
        {
            return a + b;
        }
    }
}

xUnitプロジェクトでテストコードを作成

つぎに、xUnitプロジェクトでテストコードを作成します。

image.png

UnitTest1.cs
using Calculator;
namespace CalculatorTest
{
    public class UnitTest1
    {
        [Fact]
        public void Test1()
        {
            CalculatorClass calculator = new CalculatorClass();
            int result = calculator.add(2,3);
            Assert.Equal(5, result);
        }
    }
}

NugetでReportGeneratorをインポート

カバレッジを出力ためのパッケージReportGeneratorをインストールします。
このパッケージは、カバレジ結果をXML形式で出力します。

下記のようにプロジェクトのターミナルで追加しましょう。
image.png

dotnet add package ReportGenerator --version 5.5.1

NugetでReportGenerator -dotnet-reportgenerator-globaltoolをインポート

併せて、ReportGenerator -dotnet-reportgenerator-globaltoolもインポートします。
このパッケージは、XML形式のカバレッジレポートをHTMLなどの形式に変換してくれるツールです。

下記のようにプロジェクトのターミナルで追加しましょう。
image.png

追加するときはバージョン指定で試すようにしましょう。

プレビュー版や最新バージョンに依存している場合があります。
安定版を明示的に指定すると成功することが多いです。
2025年12月時点の安定版は 5.x 系 が多いです。

バージョンは NuGet 上で確認可能:
https://www.nuget.org/packages/dotnet-reportgenerator-globaltool

dotnet tool install -g dotnet-reportgenerator-globaltool --version 5.1.11

すると下記のフォルダにインストールされます。
image.png

テスト実行

メニューバーの[テスト]⇒[すべてのテストを実行]を選択します。
image.png

カバレッジ結果をXML形式で出力

テストが実行出来たら、カバレッジ結果をXML形式で出力しましょう。
そのためには、下記のコマンドを実行する必要があります。

dotnet test --collect:"XPlat Code Coverage"

👆のコマンドを実行すると下記のフォルダが作成されます。
ここに、XML形式のカバレッジ結果が表示されます。
image.png

XML形式のカバレッジ結果をHTML形式に変換

さいごに、XML形式のカバレッジ結果をHTML形式に変換しましょう。
変換するコマンドは下記となります。

reportgenerator -reports:"C:\Users\<ユーザー名>\source\repos\<アプリ名>\xxxx\yyyyy\{GUID}\coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:Html

👆のcoverage.cobertura.xmlのフルパスは、下記の箇所でわかるので、このパスをコピペすればよいです。
image.png

HTML変換が終わると、下記のフォルダが作成されます。
image.png

サイト

C# MSTestの基本的な使用方法についてまとめる

C# の単体テストのコードカバレッジの結果をWeb形式で出力する

【C#】自動テストの実装(MsTest)

セキュリティ関係のまとめ

OSS or Freeのセキュリティ診断ツール

Java Typescript Python ソースコードチェックツール完全ガイド

Java

SpotBugs公式サイト

多言語対応の脆弱性診断ツール

Burp Suiteの使い方

Snyk Code、Snyk Open Sourceを使って脆弱性診断してみた

Snyk Open Source

Typescript

個人的TypeScriptおすすめツールを紹介したい

OWASP ZAP

OWASP ZAPダウンロード

OWASP ZAP で始めるセキュリティ診断 〜ローカル環境編〜

OWASP ZAP(Zed Attack Proxy)でWEBサイトの脆弱性診断をしよう

2023年度最新版無償利用可能なSAST(Static Application Security Testing)ツールの比較

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?