2016-05-19 5 views
7

私はNUnitからXUnit(C#)への移行を行っています。私は、テストランナーが私の自動ビルドプロセスの一部として実行されることを望まないいくつかの "統合テスト"(ITs)を書いていました。私は通常、手動でテストするときに、完全なエンドツーエンドプロセスが環境要因(データ不足など)のために機能しない場合がありますXUnitテストをExplicitとしてマークできますか?

NUnitでは、Explicit attributeでテストをマークしてスキップします(特定のCategory attributeでテストに印を付けておいて、テストランナーにそのカテゴリを明示的に指定するよう指示した場合を除きます)。

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

答えて

1

あなたはこのprojectは少しさらにそれを取り、等のユニット、統合、などのカテゴリ

+3

これは明らかに、全体のテストスイートを実行し、手動でテストすることができなくなるような方法で、試験方法を飾るための方法を表すものではありません。 –

7

私はfound itと思います。どうやら、あなたの[Fact]属性を変更することができます:[Fact(Skip="reason")]。これはテストをスキップしますが、アトリビュートを通常に戻すことなく手動で実行する方法はありません。

私はより良い方法を探し続けます。

2

ジミーを継承

[Trait ("Category", "Integration")] 

、例えば、xUnitのexampleのように、そのため[Trait]属性を使用することができますBogardはこれを素敵なRunnableInDebugOnlyAttributeで解決しました。このブログ記事を参照してください。Run tests explicitly in xUnit.net

public class RunnableInDebugOnlyAttribute : FactAttribute 
{ 
    public RunnableInDebugOnlyAttribute() 
    { 
     if (!Debugger.IsAttached) 
     { 
      Skip = "Only running in interactive mode."; 
     } 
    } 
} 
関連する問題