Per Javascript esistono alcuni framework di test, come JSUnit o js-test-driver. Stanno bene, ma eseguono i test in un browser. Va bene, soprattutto per verificare la tua webapp è in esecuzione in diversi browser. Ma in via continua-integration-server non è installato nessun sistema-finestra (e nessun browser). Quindi c'è un modo per eseguire i test senza l'utilizzo di un browser? La cosa migliore sarebbe utilizzare uno dei framework esistenti, in modo che gli sviluppatori possano eseguire localmente i test nei loro browser e il sistema di integrazione continua li esegua senza browser.Quale framework di test per Javascript supporta il test senza browser?
risposta
jsTest può essere eseguito da riga di comando o come plug-in di eclissi.
Tuttavia, fare attenzione, non sarà possibile ottenere una copertura del 100% del codice utilizzando uno strumento come questo se è necessario supportare più browser. Ogni browser implementa JavaScript in modo diverso (es .: IE). Pertanto, l'unico modo per testare completamente il tuo JavaScript è eseguire i test in tutti i browser supportati.
Non sono sicuro del perché dici che non puoi ottenere una copertura del 100%. Copertura significa che il codice viene eseguito. Il problema a cui punti (compatibilità cross-browser) è che lo stesso codice potrebbe significare (e fare) cose diverse in diversi ambienti di esecuzione. L'implicazione di ciò è che se hai una copertura del 100% in Firefox, potrebbe non dirti tutto ciò che vuoi sapere sul comportamento del codice in IE. Puoi ottenere una copertura del 100% senza conoscere al 100%.(E anche una copertura del 100% in tutti i browser non equivale al 100% di conoscenza, ma questo è un altro problema.) –
Questo era 5 anni fa. Lo sviluppo Web allora era pieno di biforcazioni dipendenti dal browser poiché le API erano così disparate. Se hai eseguito il test in Firefox, alcuni programmi da riga di comando, ecc., Non puoi eseguire _questo codice del codice nell'altro ramo che gestiva un altro browser. Dal momento che stai lasciando la metà dei tuoi rami non testati, non puoi rivendicare la copertura del 100% del codice. Al giorno d'oggi, il paesaggio è molto diverso. Onestamente non ricordo l'ultima volta che ho dovuto fare cose diverse per browser diversi. – geowa4
Credo che Canoo WebTest possa essere eseguito senza un browser. E 'fondamentalmente un quadro frontend test, ma può essere usato per testare JavaScript così:
JSpec può essere funziona senza browser (usando Rhino). Ma supporta anche l'esecuzione nei browser.
http://visionmedia.github.com/jspec/
fornisce anche un bel sintassi specifica di stile:
describe 'ShoppingCart'
describe 'addProduct'
it 'should add a product'
cart.addProduct('cookie')
cart.addProduct('icecream')
cart.should.have 2, 'products'
end
end
end
Eseguendo tutti i test di unità al di fuori di un browser, è anche ottenere i benefici di garantire la separazione della logica dalla html/livello di presentazione (utile per le app Web, probabilmente eccessivo per piccoli script).
Il progetto jspec è morto e, prima che il loro sito sparisse completamente, raccomandò invece Jasmine. http://stackoverflow.com/questions/3912312/jspec-no-longer-supported –
Jasmine funzionerà abbastanza felicemente all'interno di node.js.
Date un'occhiata ai seguenti articoli:
Inoltre, abbiamo un server jsTestDriver in esecuzione con un paio di browser web (come corridori della console remota) come risorsa per Jenkins, quindi puoi avere CI con test nei browser web.
- 1. Quale framework di test unitario?
- 2. Test selenio senza browser
- 3. Quale framework di test dell'unità C?
- 4. Quick Test snippet javascript per la compatibilità con il browser
- 5. Jenkins esegue test di selenio senza aprire il browser
- 6. Framework di test automatico
- 7. Test di compatibilità del browser
- 8. unit test modular javascript
- 9. Connessione rallentata per il browser per il test
- 10. Boost Test Vs Google Test Framework
- 11. framework di test unità per C
- 12. javascript funzione di test
- 13. Carica test in Play! framework
- 14. Applicazione web Fuzz test (framework)?
- 15. Test interessante di Javascript RegExp
- 16. Come eseguire il test QUnit e ottenere il risultato del test in C# tramite callback JavaScript?
- 17. Chiunque usi il framework di test JRuby per Eclipse/Maven?
- 18. Determinare se il browser supporta la stampa
- 19. casi di test del selenio con selenio contro più browser
- 20. Trova quale test copre quale linea jacoco
- 21. Come ottenere l'elenco dei casi di test in Robot Framework senza avviare i test effettivi?
- 22. Il test di integrazione causa il timeout di Entity Framework
- 23. Test web cross-browser mobile
- 24. C# Unit framework di test per Visual Studio?
- 25. Test di javascript con Mocha: come posso utilizzare console.log per eseguire il debug di un test?
- 26. Utilizzo del selenio per test su più versioni di browser
- 27. Caffe training senza test
- 28. PHP: come determinare se il browser supporta javascript in PHP?
- 29. Test benchmark 5.0 Entity Framework
- 30. Test Entity Framework con fixture
Non è una risposta alla tua domanda, ma ti suggerirei di provare la cosa in un vero browser. Questo è ciò che vedranno gli utenti finali, quindi questo dovrebbe essere testato. Su quale sistema operativo è installato l'elemento di configurazione? –
L'elemento della configurazione è installato su Linux, ma senza X. Pertanto, il test del server CI non consente di eseguire test in un browser. Nei browser verrà comunque testato dagli sviluppatori, ma voglio aggiungere anche i test a CI. – Mnementh
Che ne dici di phantomjs? – ShrekOverflow