【发布时间】:2010-02-12 21:36:37
【问题描述】:
edit: 注意,问题 288805 类似,但是,我特意问的是 MSTest 如何选择 default 测试顺序。请看这个问题的其余部分。谢谢 Eilon the link。
我正在查看一个遗留的 MSTest 项目。 测试总是以相同的顺序运行。 订单不是按字母顺序排列的,而且是弹跳的 在两个 *.cs TestMethod 文件中的方法之间。
我没有改变遗产的物理顺序 代码。为了方便起见,我做了附加“MSTest01” 到第一个测试的方法名称,“MSTest02”到 第二个测试的方法名称等。
令我惊讶的是,TestMethod 的执行顺序 功能改变; #3第一,#6第二,#5第三, 等等。
当我从 TestMethod 函数名称,它们的执行顺序 改回之前的顺序,即 来自第一个 .cs 文件的一个测试,来自第一个 .cs 文件的两个测试 第二个 .cs 文件,来自第一个的五个测试 .cs 文件等。
似乎文件位置可能不是一个因素 而 TestMethod 函数名称可能是一个因素。
问题:谁能解释一下 MSTest 如何决定 TestMethod 函数的执行顺序?
【问题讨论】:
-
通常你不应该关心单元测试的运行顺序。话虽如此,这是一个有趣的问题。
-
@ Mathias 我同意。我喜欢 xUnit.net 以随机顺序运行测试的方式。随机顺序是最好的选择,因为它可能会揭示不应该存在的顺序依赖关系。去特洛伊看我的 cmets。
-
?奇怪的是,我到特洛伊的 cmets 似乎消失了,还有他的问题。
-
ademiller.com/blogs/tech/2007/11/… F.Y.I. “xUnit.net 以随机顺序运行测试”,Ade Miller