2013-03-28 16 views
6

Ho due file XXXTest.html, ciascuna simile a questo:Come si costruisce una suite di test Qunit che hanno tutti i propri dispositivi qunit?

<html> 
    <head> 
     <link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.11.0.css" /> 
     <script src="../../../public/scripts/common/SomeUtils.js"></script> 
    </head> 
    <body> 
     <div id="qunit"></div> 
     <div id="qunit-fixture"> 
      <div id="findme">Something specific for the code under test</div> 
     </div> 
     <script src="http://code.jquery.com/qunit/qunit-1.11.0.js"></script> 
     <script src="SomeUtilsTest.js"></script> 
    </body> 
</html> 

Ognuno ha il proprio qunit-dispositivo, in modo che il file html è equivalente ad una classe di test JUnit. Mi rendo conto che qunit considera i moduli quasi la stessa cosa di una classe di test, ma questo è molto limitante.

Qual è il modo migliore di avere un file html master che eseguirà test all'interno di altri file html? O qual è il "modo corretto" per separare i test che hanno bisogno dei propri dispositivi nel mondo qunit?

risposta

4

Di solito ho un master runner.html, lascia il mio #qunit-fixture vuoto e compilo il dispositivo dal metodo di configurazione dei miei moduli.

Tuttavia, se si desidera condividere html è facile:

  1. Conservare il codice HTML in un modello (vale a dire un po 'di test-fixture.html)
  2. caricare il modello utilizzando AJAX (o requirejs !text)

Poi è possibile popolare la # qunit-dispositivo in base alle esigenze

3

C'è un buon plugin per questo chiamato qunit-composite.

"Composite è un plugin QUnit che, quando viene consegnato un array di file, apre ciascuno di questi file all'interno di un iframe, esegue i test e visualizza i risultati come una singola suite di test QUnit."