私は自分のTearDownメソッドで、ロジックを適用する前に前のテストが成功したかどうかをチェックしたいと思っています。これを行う簡単な方法はありますか?NUnit - TearDownでテストが成功したかどうかチェックできますか?
答えて
は、統合テストでない限り、危険なアイデアのように聞こえます。なぜテスト自体でそれをしないのですか?明らかにクラス内のプライベートフラグを設定することができました。
これは自分自身has suggestedあなたはこれを手動で行う場合のみ
をしなければならない場合Charlie Pooleものです。実際には、どのテストが実行されるのかわからないこともあります。 NUnit IDEでは、いくつかのテストを有効にしたり、いくつかのテストを無効にすることができます。あなたには、いくつかの特定のテストが実行されたかどうかを知りたい場合は、あなたのテストクラスでは、このようなコードを含めることができます
enum TestStateEnum { DISABLED, FAILED, SUCCEDED };
TestStateEnum test1State = TestStateEnum.DISABLED;
[Test]
void Test1()
{
test1State = TestStateEnum.FAILED; // On the beginning of your test
...
test1State = TestStateEnum.SUCCEDED; // On the End of your Test
}
が次にあなたがtest1State変数を確認することができます。テストで例外がスローされた場合、SUCCEDEDは設定されません。あなたはまた少し違うロジックであなたのテストでtry catch finallyブロックに置くことができます:
これは、どのテストが実行されたかを示す試みではなく、私が投げたい別のエラーです。より正確なスタックトレースを得ることができます。 –
IMHOティアダウンロジックはテスト結果から独立している必要があります。
理想的には、セットアップとティアダウンを完全に、al xunit.netを使用しないでください。詳細は、hereを参照してください。
原則として、絶対に行うべきことです。しかし私は、私のテストをBDDフレーバーできれいにまとめるのが好きです。時にはそれはラムダを介してgivensとassertを設定し、TearDownでそれらを実行することを意味します。問題は何らかの理由でセットアップまたはテスト本体が失敗した場合です。スタックトレースは混乱します。 –
これはすでに同様の質問にRan's answerで解決されています。引用するラン:
バージョン2.5.7以降、NUnitを使用すると、最後のテストが失敗したかどうかを検出することができます。 新しいTestContextクラスを使用すると、テストでTestStautを含む自分自身に関する情報にアクセスできます。詳細については
、あなたはNUnitの3.5との最後のテストの状態を検出するためのティアダウンを使用したい場合は、それがあるべきhttp://nunit.org/?p=releaseNotes&r=2.5.7
[TearDown]
public void TearDown()
{
if (TestContext.CurrentContext.Result.Status == TestStatus.Failed)
{
PerformCleanUpFromTest();
}
}
リンクをありがとう。この質問はダビデの答えの1年半前に投稿されたことに注意してください。 –
Nunit 3.xでは 'if(TestContext.CurrentContext.Result.Outcome == ResultState.Failure)'です。 – Lukas
を参照してください。動揺ザッツ
[TearDown]
public void TearDown()
{
if (TestContext.CurrentContext.Result.Outcome.Status.Equals(TestStatus.Failed))
{
//your code
}
}
- 1. すべてのテストが成功したにもかかわらず、TeamCity NUnitビルドステップが失敗しました
- 2. Update_allが成功したかどうかを検出できますか?
- 3. NUnitテストを作成しましたが、どうすればそれらを実行できますか?
- 4. 変数が「成功」を返すかどうかをチェック
- 5. NUnitテスト中のteardownイベントでは、単にテストされたメソッドに適用される属性にどのようにアクセスできますか?
- 6. キャプチャしたグループがC#.NETの正規表現で成功したかどうかをテストします。
- 7. テストで例外がスローされ、その例外が何かあった場合、NUnit TearDownでどのように知っていますか?
- 8. ノンブロッキングセンドが成功したかどうかを確認します。
- 9. PowerShellでDSQueryが成功したかどうかを確認しますか?
- 10. docker-py:ビルドが成功したかどうかをどうやって確認できますか?
- 11. NUnitはAssembly Teardownのコンセプトをサポートしていますか?
- 12. linq-to-sqlでDB更新が成功したかどうかをテストします
- 13. テストはなぜ "$"ですか?コマンドが成功したかどうかを確認するには、反パターン?
- 14. Google TestでSetUpの成功/失敗をテストできますか?
- 15. NUnitがPLINQコードをテストした後、どうすればAppDomainUnloadedExceptionを防ぐことができますか?
- 16. コマンドが成功したかどうかを判断するc
- 17. Nunit - nunitコンパイラからどのようにデータを取得できますか?
- 18. Azure Blob Storageのアップロードに成功したかどうかをチェックする方法ですか?
- 19. Powershell in MsBuild:スクリプトが成功したかどうかを確認しますか?
- 20. テストが失敗したときのnunitテスト結果の生成
- 21. 成功? 'sent':成功しなかった場合は 'failed'がデフォルトで 'sent'になります。どうして?
- 22. クエリが成功したかどうかを知る方法?
- 23. BPMプロセスが成功したかどうか知る方法
- 24. SSH接続が成功したかどうかを調べる
- 25. sp_send_dbmailが成功したかどうかを確認
- 26. ファイルの削除が成功したかどうかの確認
- 27. SpringSecurityでAuthenticationProviderが成功した後に何かしますか
- 28. ストアドプロシージャが成功または失敗したかどうかを確認する
- 29. テスト名を記録して、どのテストが失敗し、どのテストがNUnitで成功したかを記録するにはどうすればよいですか?
- 30. ObfuscationがCSharpプロジェクトファイルで成功したかどうかを確認する方法
、私が持っているでしょう何らかのNUnit.CurrentTestContext APIが必要です。デバッグに失敗した場合、このフィクスチャに提供できる追加情報があるため、テストが成功したかどうかを知る必要があります。 –