【发布时间】:2009-04-15 12:27:24
【问题描述】:
当使用 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有什么要求?
是否有解决方法可以使测试正常工作?
【问题讨论】:
标签: c# .net multithreading unit-testing backgroundworker