2

私のプロジェクトにはいくつかの単体テストがあります。それらはすべて、私が制御できない外部サービスに依存しています。このサービスは頻繁にダウンしています(2008年頃のTwitterを思い出してください)。現在、サービスがダウンしている場合、テストは失敗し、継続的インテグレーションサーバーは構築されません。私はこれに憤慨しています。この設定に依存するテストを無視して、警告を出力したいと思います。

[BeforeScenario]

try
{
    connect(server)
}
catch (Exception x)
{
    throw new Exception(String.Format("Failed to connect to server {0}", server), x);
}

これどうやってするの?今日はたまたまSpecFlowを使用していますが、NUnitからこれを行う方法も知りたいです。

以下は私が現在持っているものです。それは大丈夫。テストは無視されますが、ビルドは失敗します。

[BeforeScenario]

try
{
    connect(server)
}
catch (Exception x)
{      
    throw new SpecFlowCancelTests(String.Format("Failed to connect to server {0}", server), x);
}
4

1 に答える 1

3

Assert.Inconclusive( "message")またはAssert.Ignore()ユーティリティメソッドのいずれかを使用できます。

Assert.Inconclusiveメソッドは、使用可能なデータでテストを完了できなかったことを示します。これは、異なるデータを使用した別の実行が完了まで実行され、成功または失敗の結果が生じる可能性がある状況で使用する必要があります。

Assert.Ignoreメソッドは、実行時にテストまたはスイートを動的に無視させる機能を提供します。これは、テスト、セットアップ、またはフィクスチャのセットアップ方法で呼び出される場合があります。これは、孤立した場合にのみ使用することをお勧めします。カテゴリ機能は、テストをより広範囲に含めたり除外したりするために提供されています。または、さまざまな機会に実行されるテストをさまざまなアセンブリに単純に分割することもできます。

便利なリンク:-不確定なテスト条件とは何ですか?

于 2012-06-21T14:50:12.577 に答える