次のように、VSTSでビルドしています。
スクリーン ショットから、「コード カバレッジをテストして生成する」というテスト ステップがあることがわかります。次のコマンドを使用します。
/p:CollectCoverage=true /p:CoverletOutputFormat=cobertura /p:CoverletOutput=$(Build.SourcesDirectory)\TestResults\Coverage\coverage
これにより、コード カバレッジ レポートを生成できます。ビルド/リリース中にテストをフィルタリングできるように、定義した特性 (統合やユニットなど) を使用して xUnit テストに「カテゴリ」を追加しました。例は次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using Xunit.Abstractions;
using Xunit.Sdk;
/// <summary>
/// Decorates a test as a Unit Test, so that it runs in Continuous Integration builds.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class IsUnitAttribute : AICategoryAttribute
{
/// <summary>
/// Initializes a new instance of <see cref="IsUnitAttribute"/>
/// </summary>
public IsUnitAttribute() : base("Unit") { }
}
/// <summary>
/// Decorates a test as an Integration Test, so that it runs in Continuous Integration builds.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class IsIntegrationAttribute : AICategoryAttribute
{
/// <summary>
/// Initializes a new instance of <see cref="IsIntegrationAttribute"/>
/// </summary>
public IsIntegrationAttribute() : base("Integration") { }
}
次のように、VS-Test ステップでフィルターを適用する方法しか知りません。
しかし、dotnet を使用してテストしているときではありません。
dotnet を使用してコード カバレッジを構築する方法しか知らない (VS-Test を使用しない)… 両方やりたい! 方法:
a) コマンドを VS-Test に追加してコード カバレッジを生成します。これは、上記のコマンドを使用して dotnet に対して行うのと同じです。
また
b) フィルターを dotnet Test ステップに適用しますか?
どんなポインタでも大歓迎です!