我刚刚开始使用QUnit并遇到问题。
我目前正在使用TypeScript,它是一个JavaScript编译器。我的课程测试与主要课程的结构相似。
在每个类中,我都有一个名为runTests()的函数。
为了执行这些测试,我遍历并获取以“Test”结尾的所有类,然后调用它们的runTests()函数。
runTests()函数的一个例子是:
runTests = function() {
QUnit.test("5 = 5", function() {
QUnit.ok(5 == 5, "okay");
});
}
我知道所有的runTests()都可以正常工作(因为它们被调用,因为控制台输出而被确认),但最多它只给我一个测试。它似乎总是被调用的最后一个测试(即使在同一个runTests()中有多个测试)。
有什么奇怪的事情,QUnit重置自己,这就是为什么我只看到一个,或者我错过了一些更基本的东西?
感谢。
我使用的HTML就在这里,如果重要的话:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>QUnit Example</title>
<link rel="stylesheet" href="qunit-git.css">
</head>
<body>
<div id="qunit"></div>
<script src="qunit-1.10.0.js"></script>
<script src="mycode.js"></script>
<script type="text/javascript">
function runTest() {
var testClasses = getClassesRecurse(Test, []);
function getClassesRecurse(target, testClasses) {
if (typeof target == 'function' && /Test$/.test(target.name)) {
testClasses.push(target);
} else if (typeof target == 'object') {
for (var i in target) {
getClassesRecurse(target[i], testClasses);
}
}
return testClasses;
}
for (var i in testClasses) {
var testObj = new testClasses[i]();
if (testObj.runTests) {
console.log('Testing: ' + testClasses[i].name, testObj);
testObj.runTests();
}
}
}
runTest();
</script>
</body>
</html>
答案 0 :(得分:16)
所以,回答我自己的问题:看起来我在测试中“重新运行”,它只显示了一个测试。删除查询字符串,一切都很好。
对QUnit的建议:以大字体添加消息:“仅运行一个测试,单击此处以全部运行。” = P