c# - MSTest 中的测试执行之间的延迟/暂停
问题描述
我有一个包含多个项目的解决方案(C# 类库),我目前正在使用 MSTest 中的测试用例测试功能。添加更多测试用例后,我能够观察到一些测试用例在与其他测试用例批量执行时经常失败。当只执行这些测试用例时,它们总是会成功。
当我在代码中使用网络接口和系统资源时,我认为观察与它们有关(即使我在每个案例结束时通过代码释放每个资源/端口/连接)。
为了克服这些问题,我正在考虑不同测试用例执行之间的延迟/暂停。由于我有大约 200 个测试用例,我想避免为每个用例添加代码。是否有可能告诉 MSTest 系统添加这样的延迟/暂停?
例子
MSTest 项目包含测试用例
- T1
- T2
- T3
- ...
- T200
执行所有测试用例将导致
- T1成功
- T2成功
- ...
- Tn 失败(超时/OutOfMemory/NullReference/UnknownError...)
- ...
- T200成功
在所有执行过程中 Tn 都不相同(有些 Tn 经常失败,而另一些迄今为止从未失败,但没有真正的联系,除了 Tn 失败是在批次后期测试的)
测试用例中的实际错误也不是确定性的——它的范围从超时和随机位置的空引用到内存异常或未知错误。
一个接一个地执行测试将导致
- T1成功
- T2成功
- ...
- T200成功
解决方案
如果您希望在每次测试之前和/或之后发生某些事情,那么您可以使用:
[TestInitialize()]
public void Startup()
{
// code here
}
[TestCleanup()]
public void Cleanup()
{
// code here
}
但是,不建议依赖睡眠来使测试通过 - 我真的会尝试找出异常的根本原因。
推荐阅读
- c# - XRay 和 XUnit 报告器错误地解析多个测试用例属性
- django - FormView 不在 Django 中保存数据
- python - PyTorch 安装问题 - 使用 Jupyter notebook 和 Conda navigator 找不到包
- r - 在 Jupyter Lab 中从 Rmarkdown .Rmd 文件运行 R 代码时如何调整绘图大小?
- python - 通过气流中的文件观察器触发 dag
- amazon-web-services - 无法使用 Amazon Linux 2 在 Lightsail 实例中安装 CodeDeploy
- angular - 如何在打字稿中从cdn脚本执行函数
- javascript - react-navigation 导航钩子类型
- angular - 单击Angular更改项目的颜色
- firebase - 在 Firebase 中检索 API 密钥