2011-09-19 9 views
5

Ho molti test di unità Jasmine, che eseguono test di unità per codice Javascripts. Stanno usando il plugin Jasmine-jquery per manipolare DOM. usano loadFixture, caricare fixture di HTMLJavascript JsTestDriver Jasmine & Jasmine-jquery

ho cercato di automatizzare tali unit test, utilizzando JsTestDriver, con JasmineAdapter Ma tutti i test comportano manipolazione DOM-jquery non stanno passando? C'è qualcosa di sbagliato in questo? C'è un modo per usare Jasmine-jquery con JsTestDriver?

risposta

9

Risponderò a me stesso perché ho trovato una soluzione per questo problema. Il problema era che Jasmine-Jquery utilizzava ajax per caricare l'apparecchiatura html e utilizza un percorso relativo, supponendo che le fixture html si trovino in qualche luogo rispetto al contenitore HTML che sta eseguendo i test Jasmine. ma poiché JsTestDriver sta caricando i test all'interno del proprio "spazio", quindi dobbiamo cambiare la posizione, dove Jasmine-Jquery cerca quei dispositivi html e fa caricare JsTestDriver.

quindi la soluzione è la seguente:

JsTestDriver ha la possibilità di caricare file HTML statici. nel file di configurazione aggiungere la seguente:

Servire: - ad esempio: Servire: - infissi * .html

ora è possibile accedere a quelle con il seguente formato http: localhost: 9876/test/fixtures/... si lascia che Jasmine-jquery sappia caricare i proiettori da questa posizione.

e voilà, farai funzionare di nuovo i test.

+0

ho il mio file jar in esecuzione nella mia cartella "gelsomini" All'interno vi ho lib/gelsomino-core/jasmine.js. ho anche script/test.js e fixtures/text.html. Ho fatto Servire: - fixtures/*. Html ma sto ancora ottenendo errori di panico con 'fixtures'/fixtures 'e altre variazioni quando si imposta fixturePath dei gelsomini. Qualche idea? –

+0

Ah, ho letto la risposta di Monica e ho visto che avevo bisogno di mettere/testare di fronte. Questo l'ha risolto. L'esempio di localhost mi ha allontanato un po 'da quando il mio server non era su localhost. –

+0

Questo non sembra funzionare per JsTestDriver-1.3.4-a.jar ma non lo fa per JsTestDriver-1.3.4.b.jar su Windows. – gotofritz

3

Giusto per chiarire un po 'il previous posting.

Se nel file di configurazione jsTestDriver avete:

servire:

spec/fixtures/*_fixture.html 

Quindi, è necessario eseguire l'override la piattaforma di test con

jasmine.getFixtures().fixturesPath = '/test/spec/fixtures'; 

che è fondamentalmente /test/ + qualsiasi percorso dichiari nella sezione di servizio nel tuo file di configurazione jsTestDriver.

0

Ho appena rilasciato un toolkit open source che speriamo possa aiutare gli altri tanto quanto mi aiuta. Si tratta di una composizione di molti strumenti open source che ti dà un'app di backbone workingjs funzionante pronta all'uso.

Ha una soluzione più elegante a questo utilizzando il plugin di testo requirejs e il plugin manubrio requirejs.

Fornisce comandi singoli da eseguire: server Web di sviluppo, runner di prova per browser singolo di jasmine, runner di test multi browser per jasmine js-test-driver e concatenamento/minificazione per JavaScript e CSS. Produce anche una versione non terminata della tua app per il debug della produzione, precompila i modelli del manubrio e supporta l'internazionalizzazione. Nessuna installazione richiesta. Funziona e basta.

http://github.com/davidjnelson/agilejs