tSQLt 中的测试用例 运行 的顺序是什么?

What order the test cases run in the tSQLt?

我在 'EmployeeSchema' 中有 30 个测试用例。我想知道 tSqlt 中测试用例 运行 的顺序是什么?如果我知道测试用例的执行顺序,那么我就会一个接一个地改变我的测试用例的执行顺序。请指教。

-- Runs all the tests on MyTestClass
EXEC tSQLt.Run 'EmployeeSchema';

当 运行 在测试 class 中设置所有测试时,tSQLt.Run 将 运行 以“随机”顺序测试,这意味着 tSQLt 离开最多订购 SQL 服务器及其检索数据的方式。虽然,它们 运行 的顺序无关紧要,因为每个测试本身应该是独立的。

如果出于某种原因您想 运行 以不同的顺序进行单独的测试,您将需要按您想要的顺序分别 运行 tSQLt.Run 每个单独的测试。当您为整个测试 class.

调用 tSQLt.Run 时,您不能指定特定顺序

注:感谢@Sebastian Meine 的指正

为了确认它是 随机 执行计划相关的,这里是来自 tSQLt.Private_RunTestClass 的游标声明,它在请求的测试 class 中提取测试列表.没有 ORDER BY 所以 SQL 服务器将 return 测试名称以它认为合适的顺序排列。

DECLARE testCases CURSOR LOCAL FAST_FORWARD 
    FOR
 SELECT tSQLt.Private_GetQuotedFullName(object_id)
   FROM sys.procedures
  WHERE schema_id = @TestClassId
    AND LOWER(name) LIKE 'test%';