이 테스트는 NUnit 콘솔 러너와 함께 실행될 때 실패합니다. 내가 TestDriven.NET에 그냥 테스트를 실행하는 경우 그것은 작동하지만 내가 TestDriven.NET과 함께 전체 스위트를 실행하지 않을 경우 : 나는 문제가 의심되는 메시지 루프를 가지고 있지 함께 할 수있는 뭔가가C# /. NET : NUnit을 사용하여 BackgroundWork 테스트
[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를 사용하기위한 요구 사항은 무엇입니까?
테스트를 수행 할 수있는 임시 해결책이 있습니까?
그건 작동합니다. 감사! –
DoEvents()는 테스트 (또는 동일한 테스트 실행의 이전 테스트)가 Windows 폼이나 컨트롤을 인스턴스화 할 때만 필요합니다. 왜? –
어떤 WinForms 컨트롤이라도 윈도우 메시지는 메시지 펌프를 통해 전달되어야하기 때문에 DoEvents()를 호출하지 않으면 발생하지 않습니다. – Lucero