このテストは、NUnit コンソール ランナーで実行すると失敗します。TestDriven.NET でそのテストだけを実行すると機能しますが、TestDriven.NET でスイート全体を実行すると機能しません。
[Test]
public void BackgroundWorkerFiresRunWorkerCompleted()
{
var runner = new BackgroundWorker();
ManualResetEvent done = new ManualResetEvent(false);
runner.RunWorkerCompleted += delegate { done.Set(); };
runner.RunWorkerAsync();
bool res = done.WaitOne(TimeSpan.FromSeconds(10));
// This assert fails:
Assert.IsTrue(res, "RunWorkerCompleted was not executed within 10 seconds");
}
問題はメッセージループがないことに関係していると思われますが、よくわかりません。
BackgroundWorker を使用するための要件は何ですか?
テストを機能させるための回避策はありますか?