web-dev-qa-db-ja.com

XUnitテストを明示的と​​してマークできますか?

NUnitからXUnit(C#)に移行していて、自動ビルドプロセスの一部としてテストランナーを実行する必要がない「統合テスト」(IT)をいくつか作成していました。私は通常、手動でテストするためにこれを行います。環境要因(データの欠落など)が原因でエンドツーエンドのプロセス全体が機能しない可能性がある場合です。

NUnitでは、テストに 明示的属性 のマークを付けることができ、テストランナーによってスキップされます(テストに特定の カテゴリ属性 のマークを付けて、そのカテゴリを明示的にターゲットにするテストランナー)。

XUnitには、テストランナーからテストを除外する同様の方法がありますか?

18
neumann1990

Jimmy Bogardは、NiceRunnableInDebugOnlyAttributeを使用してこれを解決しました。このブログ投稿を参照してください: xUnit.netで明示的にテストを実行します

public class RunnableInDebugOnlyAttribute : FactAttribute
{
    public RunnableInDebugOnlyAttribute()
    {
        if (!Debugger.IsAttached)
        {
            Skip = "Only running in interactive mode.";
        }
    }
}
21
Brennan Pope

私は 見つけた だと思います。どうやら、次のように_[Fact]_属性を変更できます:[Fact(Skip="reason")]。これによりテストはスキップされますが、属性を通常に戻さずに手動で実行する方法はありません。

私はもっ​​と良い方法を探し続けます。

13
neumann1990

使った

#if DEBUG
// Must test manually with https://docs.Microsoft.com/en-us/sysinternals/downloads/process-Explorer
[Fact]
#endif

したがって、これはビルドサーバーでのテストとは見なされませんが、通常はデバッグバージョンをビルドする開発者は、このテストが失敗することに気付くでしょう。

1
Darth Jurassic