【发布时间】:2011-12-05 23:17:00
【问题描述】:
我在 QUnit 中有以下设置:
/* Dozen or so previous tests here */
test("Test some markup generation", function () {
$('#qunit-fixture').plugin(); // jQuery plugin: Generates a table
var rows = $('#qunit-fixture table tbody tr');
count = rows.length; // Count the rows
console.log(count);
equal(count, "96", "Expect the number of rows to be 96");
});
当它运行时,或者当我刷新浏览器时,它交替地失败了这个测试,显示 count = 0,或者通过了这个测试并失败了之前的所有测试。在测试之外没有定义全局变量。如果我手动将计数设置为 96,一切正常,或者如果我删除了这个测试,或者所有以前的测试,一切也都通过了。我想知道是否有人遇到过这种行为?我用过很多 QUnit,以前没有遇到过。
【问题讨论】:
-
我不确定这是否是原因,但在这里将 count 声明为局部变量至少会更清晰。也许它与 qunit 使用的其他一些变量发生冲突。
-
查看源代码,其中大量引用
count,是否有冲突请自行检查:code.jquery.com/jquery-1.7.1.js -
还有一个“功能”,可让您单击测试报告中的一个测试,以仅选择该测试进行运行。我花了半个小时才弄明白为什么我看起来只有一次测试;-)
-
可能是表格还没有完成生成?有没有可以从插件中使用的回调函数?
-
@The Nail 很好的建议,但是即使在本地声明它或命名它以避免冲突也不能解决问题。
标签: javascript jquery qunit