MSTest v2顺序测试

时间:2019-03-28 17:22:09

标签: c# unit-testing visual-studio-2017 mstest

我正在使用Visual Studio 2017 Enterprise和MSTest V2。我的解决方案有多个单元测试项目。在一个项目中,我有单元测试,用于测试从安装目录加载资源。大多数测试都会测试资源是否正确加载,但是有些测试会删除资源以确认是否正确处理了资源。

enter image description here

我遇到的问题是测试并行运行。因此,删除资源的测试会在运行正在加载资源的测试的同时执行此操作,并且测试失败。

我意识到我可以通过更新代码以发送目录以进行搜索来解决此问题,或者通过运行一组测试然后进行另一组测试来解决此问题,但是我希望能够一次运行所有测试。听起来MSTest v2应该按顺序运行,除非另有指示要并行运行,但是在我的系统上,这显然是错误的。看来,有序测试不适用于v2。有没有办法让MSTest V2顺序运行?

2 个答案:

答案 0 :(得分:0)

要使测试按顺序运行,请在.runsettings文件中将MaxCpuCount设置为1,有关更多信息,请参见:Configure unit tests by using a .runsettings file

答案 1 :(得分:0)

  1. MStest v2 将不支持orderedtests issue
  2. 您可能在测试设置文件或程序集文件中设置了并行化范围 https://www.meziantou.net/mstest-v2-execute-tests-in-parallel.htm 如果您删除它,它将按顺序运行

我想说你可以创建一个标志并从依赖测试更新它,在清理资源之前检查标志状态。可能是 testname 和 status 的字典,一旦完成,执行此测试或等待该测试完成。您可以为此实现自定义逻辑。