首页 > 解决方案 > MSTest 中的测试执行之间的延迟/暂停

问题描述

我有一个包含多个项目的解决方案(C# 类库),我目前正在使用 MSTest 中的测试用例测试功能。添加更多测试用例后,我能够观察到一些测试用例在与其他测试用例批量执行时经常失败。当只执行这些测试用例时,它们总是会成功。

当我在代码中使用网络接口和系统资源时,我认为观察与它们有关(即使我在每个案例结束时通过代码释放每个资源/端口/连接)。

为了克服这些问题,我正在考虑不同测试用例执行之间的延迟/暂停。由于我有大约 200 个测试用例,我想避免为每个用例添加代码。是否有可能告诉 MSTest 系统添加这样的延迟/暂停?

例子

MSTest 项目包含测试用例

执行所有测试用例将导致

在所有执行过程中 Tn 都不相同(有些 Tn 经常失败,而另一些迄今为止从未失败,但没有真正的联系,除了 Tn 失败是在批次后期测试的)

测试用例中的实际错误也不是确定性的——它的范围从超时和随机位置的空引用到内存异常或未知错误。

一个接一个地执行测试将导致

标签: c#mstest

解决方案


如果您希望在每次测试之前和/或之后发生某些事情,那么您可以使用:

[TestInitialize()]
public void Startup()
{
   // code here
}

[TestCleanup()]
public void Cleanup()
{
   // code here
}

但是,不建议依赖睡眠来使测试通过 - 我真的会尝试找出异常的根本原因。


推荐阅读