我正在运行一组使用模块级别setup
和teardown
方法的 QUnit 测试。我注意到,当调用它们时,在我的测试中使用start()
和stop()
内部似乎会中断,这会导致问题,因为在我的设置中可用的某些项目对某些运行的测试不可用。
编辑:我注意到这仅在我以编程方式加载测试脚本时发生(我正在使用脚本加载器:LABjs)。我已经相应地修改了这个问题的主题和内容。我正在加载这样的测试:
$LAB.script('/static/tests.js')
仍然不确定为什么会发生这种情况。
这是我的测试模块的示例:
module('Class Foo', {
setup: function() {
console.log('setup called');
},
teardown: function() {
console.log('teardown called');
}
});
test('Test1', function() {
stop();
console.log('test1');
ok(true);
start();
});
test('Test2', function() {
stop();
console.log('test2');
ok(true);
start();
});
test('Test3', function() {
stop();
console.log('test3');
ok(true);
start();
});
这会产生控制台输出(注意 setup 被调用了两次,然后不再):
setup called
test1
teardown called
(2)setup called
test3
teardown called
test2
teardown called
删除启动/停止,或修改我的测试文件以不以编程方式加载(即:使用传统标签):
test('Test3', function() {
console.log('test3');
ok(true);
});
产生更预期的执行顺序:
setup called
test1
teardown called
setup called
test2
teardown called
setup called
test3
teardown called
我是否误解了这应该如何运作?