2013-08-26 119 views
3

关于如何单元测试线程代码,但不在单元测试方法内的产卵线程上测试同步机制,有很多信息。在单元测试中产卵线程

[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(); 
} 

我想stresstest如果里面PriceThread代码同步正确实施,但该方法运行的每一次我得到的错误“而测试正在运行在代理过程中停止”。是否有可能在单元测试中产生线程,或者在这里可能会出错?

即时通讯使用Visual Studio 2010与运单元测试框架

+1

这甚至听起来不像是对我的单元测试。更像负载测试或功能测试。 –

+0

您无法测试该同步是否正常工作,只发现它不*正常工作。 –

+0

我同意,它不是100%有用的测试同步,因为它在实时应用程序中的不可预测性如何运行代码,但产生100个线程调用相同函数的测试应该告诉 – Laurijssen

回答

1

这是不是一个真正的完整的答案,但我会建议你看看VS 2010 Test Runner error "The agent process was stopped while the test was running."的想法。

你知道在代码中抛出异常的地方吗?

编辑与答案:

这是结果时相比,主线程的线程上引发未处理的异常。这里就是这种情况,即没有问题与循环或线程本身。

+0

测试代码本身和在代码被测试 – Laurijssen

+0

在打开抛出的异常之后,它在测试代码本身中显示一个空引用异常.....我非常忙于整个线程的事情,我有一个普通代码的盲点。感觉很愚蠢,三个月的疗法应该诀窍 – Laurijssen

+0

@ServéLaurijssen嗯,那么问题解决了吗? – flindeberg