背景
ので、同様に、私は、ITestAction
属性の中から、各テストの結果/結果を知ることが必要に働いているのNUnitフレームワーク拡張:NUnit TestContext.CurrentContextは並列テストで安全に使用できますか?
public class MyFrameworkExtensionAttribute : Attribute, ITestAction
{
public void BeforeTest(ITest test)
{ /* Omitted, not relevant to this question */ }
public void AfterTest(ITest test)
{
var result = TestContext.CurrentContext.Result;
var resultIsSuccess = result.Outcome.Status == TestStatus.Passed;
// Then go on to do stuff with that resultIsSuccess variable
}
}
はAfterTest
の最初の行に注意してください。方法;私は静的参照を使用しています:TestContext.CurrentContext。 ITest
インターフェイスはテストの結果を公開しないので、テストコンテキストが唯一の方法であるようです。
そして今、私の質問の質問
- NUnitの3.xのはParallelizableAttribute
を経由して、並行してテストを実行する機能が含まれているため - 私は思ったんだけど:それは現在のテストのコンテキストへの静的な参照を使用しても安全ですか?ここで心配する必要があるスレッドセーフティ懸念はありますか?静的な参照に頼らずにテスト結果を得るためのより良い/より堅牢な方法がありますか?
重要な場合は、NUnitフレームワーク3.7.1を使用しています。