2012-10-23 13 views
7

Właśnie zaczynam używać QUnit i mając problemy.QUnit nie uruchomi testów

Obecnie używam TypeScript, który jest kompilatorem JavaScript. Mam swoje testy w klasach równoległych do struktury moich głównych zajęć.

W każdej z tych klas mam funkcję o nazwie runTests().

Aby wykonać te testy, przechodzę przez wszystkie klasy kończące się na "Test", a następnie wywołuję ich funkcję runTests().

Przykładem z runTests() jest:

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

znam wszystkich runTests() działa (jak się je nazywa, potwierdzone z powodu wyjścia konsoli), ale w większości to tylko kiedykolwiek pokazuje mi jeden test. Wydaje się, że zawsze jest to ostatni sprawdzany test (nawet z wieloma testami w tych samych testach testowych()).

Czy jest jakaś dziwna rzecz, w której QUnit się resetuje, dlatego widzę tylko jeden, czy też brakuje mi czegoś jeszcze bardziej podstawowego?

Dzięki.


HTML używam jest tutaj, w przypadku jest to ważne:

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

Odpowiedz

16

Tak więc, aby odpowiedzieć na moje własne pytanie: wygląda na to, że trafił „powtórkę” na teście i pokazywał ja tylko jeden test. Usunięcie ciągu zapytania i wszystko było dobrze.

Sugestia do QUnit: Dodaj wiadomość dużą czcionką: "Tylko jeden test, kliknij tutaj, aby uruchomić wszystkie." = p