2012-10-23 430 views
7

我剛開始使用QUnit並遇到問題。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

jsfiddle,請。 – c69

回答

16

因此,要回答自己的問題:它看起來像我擊中了「重播」在測試時,在顯示我只是一個測試。刪除查詢字符串和一切都很好。

對QUnit的建議:以大字體添加消息:「只運行一個測試,請單擊此處運行全部。」 = p