gpt4 book ai didi

c# - MSTest 如何确定运行测试方法的顺序?

转载 作者:IT王子 更新时间:2023-10-29 04:44:16 24 4
gpt4 key购买 nike

编辑: 注意,问题 288805 类似,但是,我特别想问 MSTest 如何选择默认 测试顺序。请参阅此问题的其余部分。谢谢 Eilon the link .

我正在查看遗留的 MSTest 项目。测试总是以相同的顺序运行。订单不是按字母顺序排列的,而且是弹跳的在两个 *.cs TestMethod 文件中的方法之间。

我没有改变遗产的物理顺序代码。为了方便起见,我做了附加“MSTest01”到第一个测试的方法名称,“MSTest02”到第二个测试的方法名称,等等。

令我惊讶的是,TestMethod的执行顺序功能改变; #3 第一,#6 第二,#5 第三,等等。

当我从TestMethod函数名,它们的执行顺序改回以前的顺序,即一个来自第一个 .cs 文件的测试,两个来自第二个 .cs 文件,第一个的五个测试.cs 文件等。

似乎文件位置可能不是一个因素而 TestMethod 函数名称可能是一个因素。

问题:谁能解释一下 MSTest 如何决定 TestMethod 函数的执行顺序?

最佳答案

我相信 MSTest 执行测试方法时按“ID”(似乎是它们的完整命名空间)对它们进行排序。

我创建了一个 TestProject1,其中包含 4 个单元测试(UnitTest1、...2、...A、...B)。每个单元测试包含 5 个测试方法 (TestMethodA, ...B, ...1, ...2, ...3)。它们在测试类中以随机顺序声明。现在,每次我运行 MSTest 时,测试都以相同的顺序执行:

TestProject1.UnitTest1.TestMethod1
TestProject1.UnitTest1.TestMethod2
TestProject1.UnitTest1.TestMethod3
TestProject1.UnitTest1.TestMethodA
TestProject1.UnitTest1.TestMethodB
TestProject1.UnitTest2.TestMethod1
TestProject1.UnitTest2.TestMethod2
TestProject1.UnitTest2.TestMethod3
TestProject1.UnitTest2.TestMethodA
TestProject1.UnitTest2.TestMethodB
TestProject1.UnitTestA.TestMethod1
TestProject1.UnitTestA.TestMethod2
TestProject1.UnitTestA.TestMethod3
TestProject1.UnitTestA.TestMethodA
TestProject1.UnitTestA.TestMethodB
TestProject1.UnitTestB.TestMethod1
TestProject1.UnitTestB.TestMethod2
TestProject1.UnitTestB.TestMethod3
TestProject1.UnitTestB.TestMethodA
TestProject1.UnitTestB.TestMethodB

更改该顺序的唯一方法是重命名一个 TestClass 或 TestMethod。例如,如果我将 UnitTest1 的 TestMethodB 重命名为 TestMethod4,它将在 TestMethodA 之前执行。

要查看测试方法的 ID,请从 VS 打开“测试 View ”窗口,然后右键单击列标题(例如测试名称)-->“添加/删除列...”并添加“ID”专栏。

关于c# - MSTest 如何确定运行测试方法的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com