QUnit.config.semaphore未定义,因此不会影响stop()或start()

时间:2013-12-11 20:30:36

标签: config semaphore qunit

QUnit已经使用了一段时间,所以这对我来说是个错误,但我无法弄清楚问题出在哪里:

我正在使用QUnit 1.12.0并在IE11和Chrome 31.0.1650.63中看到此行为

由于QUnit.config.semaphore值从未定义开始,因此对QUnit.stop()和QUnit.start()的调用实际上不会递减或递增该值。

例如,qunit-1.12.0.js的第488行(这是stop()方法的第一行)是:

config.semaphore += count || 1;

因为config.semaphore以undefined开头,所以这行简单地使config.semaphore成为NaN,它实际上从不增加该值。因此,start()方法没有要测试的实际数字。

结果是我可以调用这些方法:

Qunit.config.autostart = false;
QUnit.stop();
QUnit.stop();
QUnit.test(xxx);
QUnit.start();

当我调用QUnit.start()时,我的测试运行了。但是它不应该运行,因为我调用了stop()两次而start()只调用一次。

这方面的一个例子是:http://plnkr.co/edit/pH1SCk2AuXW30wltwS3g?p=preview

测试应该运行但是确实如此。如果在上面的plnkr站点中取消注释script.js的第4行,则测试不会按预期运行,因为QUnit.config.semaphore初始化为零而不是未定义。但是,QUnit的文档不包含QUnit.config.semaphore值的文档,因此我不希望对其进行修改。

0 个答案:

没有答案