有很多关于如何对线程代码进行单元测试的信息,但没有关于在单元测试方法中生成线程来测试同步机制的信息。
[TestMethod]
public void TestDiscountThreading() {
Thread[] threads = new Thread[50];
for (int i = 0; i < threads.Length; i++) {
threads[i] = new Thread(PriceThread);
threads[i].Start();
}
for (int i = 0; i < threads.Length; i++)
threads[i].Join();
}
我想强调测试PriceThread内部代码中的同步是否正确实现,但每次运行该方法时都会收到错误“代理进程在测试运行时已停止”。是否有可能在单元测试中产生线程或者这里有什么问题?
我使用Visual Studio 2010和随附的单元测试框架
答案 0 :(得分:1)
这不是一个完整的答案,但我建议您查看VS 2010 Test Runner error "The agent process was stopped while the test was running."的想法。
你知道在代码中抛出异常的位置吗?
编辑回答:
当主线程以外的线程抛出未处理的异常时,这是结果。这就是这种情况,即循环或线程本身没有问题。