如何在 vs2012 中创建 integration/unit 测试序列?

How do I create integration/unit test sequencing in vs2012?

我有一个应用程序 运行 针对具有异步消息传递 api 的模拟硬件进行了大约 200 个单元测试。所有测试 运行 并单独通过,但由于外部调用的异步性质,当 运行 作为一个组时,其中许多测试将失败。

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

编辑: 顺序似乎也有些问题,某些测试锁定外部资源的时间比其他测试长。

我理解这些是集成测试和单元测试。其中大部分是单元测试,其中大部分是模拟服务,其中大部分是 api 集成测试。

我继承了这套测试,所以"integration tests"和"unit tests"的分离是我无法控制的。

一些背景信息: 我们在这里与 LabView dll 交互,它们有自己的一套怪癖,我们正试图减轻和煽动这些怪癖。

如果您使用的是 VS 2012 或更高版本,还有假冒的 MS 模拟。

否则 RhinoMock 工作得很好。有点学习曲线。

我也分解了类,把相互冲突的单元测试分开了。

是的,你可以用这样的方式添加等待:

System.Threading.Thread.Sleep(5000);

购买 我建议您创建一个简单的 LabVIEW 函数,在一个 while 循环中查询所有仪器的状态,并 "waits" 让每个仪器做出响应。例如,如果您使用的是 GPIB,则标准查询为:

*IDN?

您还可以研究 NI 的 TestStand 产品,它专门设计用于协调复杂的异步测试,我相信它有一个 API 您可以从 C# 访问。 http://www.ni.com/teststand/whatis/