我们一直在运行使用 MSTest 使用 SpecFlow 创建的测试,测试的顺序由测试 ID 确定。因此,只需使用 1001_、1002_ 等开始测试名称,您就可以控制执行顺序。与 VStest 运行相同的订单时出现问题。如另一篇文章所述,VSTest 的执行顺序如下*。而唯一明显的选择是创建一个“有序测试”容器,这并不适合我们。想知道是否有办法使用 VSTest 控制测试顺序。谢谢
*关于VSTest的执行顺序。以下是它在您的 TestProject 中的组织方式:
- 按 CREATION Time ASC 对项目中的 cs 文件进行排序
- 每个文件中的方法位置
例如,您在项目中有 3 个 cs 文件。
UnitTest1.cs - 使用方法 TestMethod05 和 TestMethod03 创建于 01/01/1970
UnitTest2.cs - 使用方法 TestMethod02 创建于 05/01/1970。
UnitTest3.cs - 使用方法 TestMethod01 创建于 03/01/1970。
然后执行测试的顺序是这样的:
TestProject1.UnitTest1.TestMethod05
TestProject1.UnitTest1.TestMethod03
TestProject1.UnitTest3.TestMethod01
TestProject1.UnitTest2.TestMethod02
您可以使用命令查看“默认顺序”:vstest.console.exe TestProject1.dll /ListTests*