MSTest v2有序测试

6

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

enter image description here

我遇到的问题是测试运行并行。因此,删除资源的测试与加载资源的测试同时运行,导致测试失败。

我知道可以通过更新代码发送要搜索的目录或先运行一组测试,然后再运行下一组来解决此问题,但我更喜欢能够同时运行所有测试。听起来MSTest v2应该按顺序运行,除非另有指示要并行运行,但在我的系统上,这明显是错误的。看起来有序测试也不适用于v2。有办法让MSTest V2按顺序运行吗?


我在使用MSTest时遇到了同样的问题,想知道你是否已经解决了这个问题? - user1207289
@user1207289 - 我无法使其按顺序运行。我在下一个项目中切换到了nUnit。对于这个已经有测试的项目,我使用了对象锁定来强制处理需要按顺序进行的方法。虽然不是最好的方法,但这是我能找到的唯一解决方案。 - Tim
2个回答

1
  1. MStest v2不支持有序测试 问题链接
  2. 你可能已经在testsettings文件或Assembly文件中设置了并行化范围 https://www.meziantou.net/mstest-v2-execute-tests-in-parallel.htm 如果删除它,将按顺序运行

我建议您可以创建一个标志,并从依赖测试更新该标志,在清理资源之前检查标志状态。可以使用测试名称和状态的字典,一旦完成,执行此测试或等待该测试完成。您可以实现自定义逻辑。


-1

1
谢谢您的建议,但不幸的是这并没有起作用。根据文档,“测试执行引擎在每个可用的核心上启动为一个独立的进程,并为每个核心提供要运行的测试容器。”这些测试似乎仍然是并行运行的,但限制在单个核心上。 - Tim
根据链接文档,缺省值为1。因此,假设用户没有.runsettings文件,则这是不正确的。 - daniel.caspers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接