Mocha tenta di trovare i file di prova sotto test
per impostazione predefinita, come faccio a specificare un'altra dir, ad es. server-test
?Come specificare la directory di test per mocha?
risposta
Ecco un modo, se nella cartella di test sono presenti sottocartelle, ad es.
/test
/test/server-test
/test/other-test
Poi in Linux È possibile usare il comando find per elencare tutti i file * .js in modo ricorsivo e passarlo al moka:
mocha $(find test -name '*.js')
o semplicemente usare '--recursive' come spiego sotto –
Quindi in altre parole' mocha' non ha alcuna opzione per impostare la struttura di directory desiderata in config? – Green
utente client $ mocha $ (trovare test -name '* .js') -bash: mocha: comando non trovato; Ottenere questo errore. – lft93ryt
Questo non sembra essere un supporto "facile" per la modifica della directory di test.
Tuttavia, forse dovresti dare un'occhiata a this issue, relativo alla tua domanda.
Non utilizzare il -g o l'opzione --grep, quel modello opera sul nome del test all'interno di esso(), non sul filesystem. La documentazione attuale è fuorviante e/o assolutamente errata in merito. Per limitare l'intero comando a una porzione del filesystem, puoi passare un pattern come ultimo argomento (non è un flag).
Ad esempio, questo comando sarà impostare il giornalista a spec, ma sarà solo file di test js immediatamente all'interno della directory del server-test:
mocha --reporter spec server-test/*.js
Questo comando farà lo stesso come sopra, in più è solo la volontà eseguire i test in cui l'esso() stringa/definizione di un test inizia con "Fnord:":
mocha --reporter spec --grep "Fnord:" server-test/*.js
sono su Windows 7 utilizzando v0.10.0 node.js e moka v1.8.2 e NPM v1. 2.14. Stavo solo cercando di ottenere moka per utilizzare il test del percorso/unità di trovare i miei test, Dopo aver trascorso a lungo e provare diverse cose sono atterrato,
Utilizzando il "test/unit/*. Js" opzione non fa lavorare su Windows. Per buoni motivi che la shell di Windows non espande i caratteri jolly come unixen.
Tuttavia utilizzando "test/unità" funziona, senza il modello di file. es. "mocha test/unit" esegue tutti i file trovati nella cartella test/unità.
Questo esegue ancora solo i file di una cartella come test ma è possibile passare più nomi di directory come parametri.
Anche per eseguire un singolo file di test è possibile specificare il percorso completo e il nome file. es. "Test moka/unità/mytest1.js"
Io in realtà l'installazione in package.json per NPM "script": { "test": "test moka/unit" },
In modo che ' test npm 'esegue i miei test di unità.
A partire da oggi, si può usare l'opzione '--recursive' come la seguente:' mocha --recursive "some_dir" ' – superjos
Uso' node_modules \ .bin \ mocha "test \ unit \ *. Js" 'funziona su Windows . Anche 'node_modules \ .bin \ mocha" ** \ *. Js "' funziona (il mio caso reale). Ma sto cercando un modo per escludere la directory _node_modules_. (Uso anche gulpfile.js ma a volte ho bisogno di avviare test direttamente con moka) –
Utilizzare questa:
mocha server-test
O se avete sottodirectory utilizzare questo:
mocha "server-test/**/*.js"
Nota l'uso di doppi apici. Se li ometti potresti non essere in grado di eseguire test nelle sottodirectory.
Questo non funziona per me. Se desidero farlo in questo modo devo fare 'mocha test/server-test' – jonnie
Il problema delle doppie virgolette mi ha fatto invecchiare! Grazie per aver salvato la mia sanità mentale. Gridare a tutti coloro che leggono questo per prestare maggiore attenzione a quelle doppie virgolette. – ctrlplusb
Nel mio caso, stavo usando 'mocha ./**/*. Test.js' (così posso colocare il file di test con il file del modulo). Il pattern ha smesso di funzionare per me quando ho aggiunto un file di test a un livello diverso nella gerarchia dei file rispetto al resto dei test e trovavo solo uno strano file ball e non una dozzina di altri che vivevano allo stesso livello nella gerarchia . Avvolgere le virgolette lo ha risolto. – Stoutie
Se si vuole farlo ancora solo in esecuzione mocha
sulla riga di comando, ma ha voluto eseguire i test in una cartella ./server-tests
invece di ./test
, creare un file a ./test/mocha.opts
proprio con questo nel file:
server-tests
Se si voleva correre tutto in quella cartella e sottocartelle, mettere questo in test/mocha.opts
server-tests
--recursive
mocha.opts
sono gli argomenti passati in via il comando l ine, in modo da rendere la prima linea solo la directory che si desidera modificare le prove troppo reindirizza da ./test/
Questa è l'opzione con il minimo attrito e dovrebbe essere la risposta accettata IMHO –
Questo è un risparmio di tempo. –
sto usando uno dei piatti della caldaia e alla riga seguente, potrebbe essere a causa di windows, puoi controllare una volta .node ./node_modules/mocha/bin/mocha $ (trova api -name '* -test.js') --compiler js: babel-core/register – kobe
Ho avuto questo problema solo ora e risolto rimuovendo l'opzione --recursive
(che avevo impostato) e utilizzando la stessa struttura suggerito sopra:
mochify "test/unit/**/*.js"
Questo ha tutte le prove in tutte le directory sotto /test/unit/
per me, ignorando le altre directory all'interno /test/
Se si utilizza nodejs
, nei vostri package.json
sotto scripts
- Per
global (-g)
installazioni:"test": "mocha server-test"
o"test": "mocha server-test/**/*.js"
per documenti secondari - Per
project
installazioni:"test": "node_modules/mocha/bin/mocha server-test"
o"test": "node_modules/mocha/bin/mocha server-test/**/*.js"
per documenti secondari
Poi basta eseguire i test normalmente come npm test
Sto trovando che 'npm esegue mocha" ./test/*. spec.js! (~) "' ignora l'argomento glob, ma 'node_modules/.bin/mocha" ./test/*. spec.js! (~) "' no. – ironchicken
@ironchicken per passare argomenti da "npm run" use - come in 'npm run mocha - yourArgs' – Hamsterrific
Come menzionato da @superjos in commen ts usano
mocha --recursive "some_dir"
Esegui tutti i file in test_directory
tra cui sub directory che corrispondono test.js
find ./parent_test_directory -name '*test.js' | xargs mocha -R spec
o utilizzare l'interruttore --recursive
mocha --recursive test_directory/
- 1. Test di loop Mocha?
- 2. Composer come specificare la directory di installazione
- 3. test parametrizzati con Mocha
- 4. Specificare la directory di lavoro per il popen
- 5. Mantenere test Mocha fianco file di origine
- 6. Organizzazione test utilizzando Mocha & Should.js
- 7. Come specificare la directory include per configurare lo script
- 8. Jasmine (mocha) test "it" nidificati
- 9. Test promessa catene con Mocha
- 10. Test di javascript con Mocha: come posso utilizzare console.log per eseguire il debug di un test?
- 11. Come specificare la directory exec di R CMD?
- 12. Eclipse: specificare più directory di ricerca come specificare più directory src
- 13. Assert sta interrompendo la funzione asincrona nel test del Mocha
- 14. Come posso specificare più directory per RSpec da cui estrarre i test?
- 15. Node.js + mocha + webdriverjs: Test fallito kill suite
- 16. gulp-mocha come passare la flag dei compilatori?
- 17. mocha passare variabile al test successivo
- 18. Come specificare IntelliJ Escludi directory usando Gradle?
- 19. Jasmine vs. Mocha Test su JavaScript per Rails 3.1+
- 20. Come si installa ed esegue Mocha, il modulo di test Node.js? Ottenere "mocha: comando non trovato" dopo l'installazione
- 21. Perché Mocha non segnala il tempo per ogni test?
- 22. Open Program da C# - anche specificare la directory di lavoro
- 23. come specificare la nuova posizione di ambiente per conda creare
- 24. Come registrare un test Mocha non riuscito su una Promessa
- 25. Come posso recuperare il nome del test corrente all'interno di un test Mocha?
- 26. Esecuzione di test Mocha con SailsJS e Superagent
- 27. Come specificare il timeout del test per Python Unittest?
- 28. Karma vs framework di test Jasmine, Mocha, QUnit
- 29. Test di Javascript con mocha il file html5 api?
- 30. Come configurare TeamCity build con Mocha?
Anche se non è al 100% una risposta alla tua domanda, controlla http://jaketrent.com/post/run-single-mocha-test/ - Sono venuto qui cercando come eseguire una specifica suite di test e questo mostra puoi usare '. solo 'e' .skip' per gestire i test che stai eseguendo. Importante durante lo sviluppo di una funzione specifica quando non si desidera attendere l'esecuzione dell'intera suite di test. –