2

次のように、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 ステップに適用しますか?

どんなポインタでも大歓迎です!

4

1 に答える 1

5

Test Filter criteriadotnet テスト ステップのフィールドがありません。--filterただし、コマンド ラインで引数を指定して dotnet テストを実行してみることができます。

フィルターオプションの詳細をご覧ください

指定された式を使用して、現在のプロジェクトのテストを除外します。詳細については、「フィルター オプションの詳細」セクションを参照してください。選択的単体テスト フィルタリングの使用方法の詳細と例については、「選択的単体テストの実行」を参照してください。

于 2018-08-30T11:14:31.010 に答える