对于使用异步消息传递api的模拟硬件运行的应用程序,我有200个单元测试。所有测试都单独运行和通过,但是由于外部调用的异步特性,当它们作为一个组运行时,许多测试将失败。

有没有一种方法可以在vs 2012中设置测试顺序,以便在每次测试后添加一个小的延迟,从而使外部设备有机会清除其缓存?

编辑:
顺序似乎也很重要,某些测试将外部资源锁定的时间比其他时间更长。

我知道这些是集成测试和单元测试。其中很多是单元测试,很多是模拟服务,很多是api集成测试。

我继承了这套测试,因此“集成测试”和“单元测试”的分离是我无法控制的。

一个小背景:我们在这里与LabView dll进行接口,这些dll带有它们自己的一套怪癖,我们正努力减轻和鼓舞。

最佳答案

是的,您可以添加如下所示的等待:

System.Threading.Thread.Sleep(5000);


购买,我建议您创建一个简单的LabVIEW函数,以查询while循环内所有仪器的状态,并“等待”每个仪器进行响应。例如,如果您使用的是GPIB,则标准查询为:

*IDN?


您也可以查看NI的TestStand产品,该产品专门用于协调复杂的异步测试,我相信它具有可以从C#访问的API。
http://www.ni.com/teststand/whatis/

关于c# - 如何在vs2012中创建集成/单元测试排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27866441/

10-11 20:40
查看更多