2016-02-09 14 views
8

Testy My Mocha działały poprawnie, ale kiedy dodałem nowy moduł (i testuję), mocha przestał uruchamiać wszystkie moje pliki testowe, a teraz uruchamia tylko jeden nowy test.Mocha uruchamia tylko jeden plik testowy

Mój skrypt testowy:

env NODE_PATH=$NODE_PATH:$PWD/src mocha --recursive --compilers js:babel-core/register src/**/*.test.js --require babel-polyfill 

Mój projekt jest skonstruowany tak:

/src 
    /components 
    /component-name 
     index.js 
     component.js 
     component-name.test.js 
     style.scss 
    /util 
    /module-name 
     index.js 
     module-name.test.js 
    /some-other-module 
    index.js 
    some-other-module.test.js 

miałem kilka testów w /components i /util i wszystko działało w porządku, ale kiedy umieścić moduł w /src (jak /some-other-module) z plikiem .test.js, Mocha uruchamia tylko ten plik testowy i żaden inny.

Odpowiedz

13

Put pojedyncze cudzysłowy wokół rysunku, który przechodzi do Mocha aby uniknąć ryzyka interpretowane przez powłokę: 'src/**/*.test.js'

Co się dzieje, jest to, że bez cudzysłowów, twoja skorupa stara się poszerzyć ten wzorzec i jest skuteczne. Rezultatem rozszerzenia jest src/some-other-module/some-other-module.test.js i to jest to, co jest przekazywane do Mocha.

Przed utworzeniem tego pliku powłoka nadal próbowała rozwinąć wzór, ale nie powiodło się i pozostawił wzór bez zmian. Więc Mocha dostał src/**/*.test.js, którą sama Mocha zinterpretowała jako glob.

Jeśli zastanawiasz się, w Bash, chyba że włączona jest opcja globstar, ** jest odpowiednikiem *.

+2

Dziękuję. To działa idealnie. Zakładam, że '**' zadziała, ponieważ działa w mojej powłoce (ZShell), ale wygląda na to, że skrypty 'package.json' są uruchamiane z Bash. – SimpleJ

+0

Jak ustawić wzór w konfiguracji 'mocha'? – Green

Powiązane problemy