2012-10-23 11 views
7

Ich fange gerade an, QUnit zu benutzen und Probleme zu haben.QUnit wird keine Tests ausführen

Ich verwende derzeit TypScript, das ist ein JavaScript-Compiler. Ich habe meine Tests in Klassen, die parallel zur Struktur meiner Hauptklassen sind.

In jeder dieser Klassen habe ich eine Funktion namens runTests().

Um diese Tests auszuführen, durchlaufen ich alle Klassen, die mit "Test" enden, und rufen dann ihre runTests() - Funktion auf.

Ein Beispiel für die runTests() Funktion ist:

runTests = function() { 
    QUnit.test("5 = 5", function() { 
    QUnit.ok(5 == 5, "okay"); 
    }); 
} 

ich all die runTests wissen() arbeiten (wie in sie genannt werden, weil der Konsolenausgabe bestätigt), aber höchstens immer nur zeigt mir einen Test. Es scheint immer der letzte Test zu sein (auch bei mehreren Tests in den gleichen runTests()).

Gibt es eine komische Sache, wo QUnit sich selbst zurücksetzt, weshalb ich nur eins sehe, oder fehle ich etwas noch Grundlegenderes?

Danke.


Die HTML-I ist hier verwenden, falls es wichtig ist:

<!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, bitte. – c69

Antwort

16

Also, meine eigene Frage zu beantworten: es sieht aus wie ich „Wiederholung“ auf einem Test getroffen hatte und es zeigte Ich habe nur einen Test. Entfernen der Abfragezeichenfolge und alles war gut.

Ein Vorschlag zu QUnit: Fügen Sie eine Nachricht in einer großen Schriftart hinzu: "Führen Sie nur einen Test aus, klicken Sie hier, um alle auszuführen." = p