2016-02-09 7 views
8

Meine Mocha-Tests funktionierten gut, aber als ich ein neues Modul (und Test) hinzufügte, hörte Mocha auf, alle meine Testdateien laufen zu lassen und führt jetzt nur den einzigen neuen Test durch.Mocha läuft nur eine Testdatei

Mein Testskript:

/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 

Ich hatte mehrere Tests in /components und /util und alles funktionierte gut, aber wenn ich Platz ein Modul in /src:

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

Mein Projekt wie dieses aufgebaut ist, (wie /some-other-module) mit einer .test.js Datei darin, läuft Mocha nur diese Testdatei und keine der anderen.

Antwort

13

Setzen Sie einfache Anführungszeichen um das Muster, das Sie Mocha passieren zu verhindern, dass es von der Shell interpretiert wird: 'src/**/*.test.js'

Was ist passiert, dass, ohne die Anführungszeichen, die Shell dieses Muster zu erweitern versucht und ist erfolgreich. Das Ergebnis der Erweiterung ist src/some-other-module/some-other-module.test.js und das ist, was an Mocha weitergegeben wird.

Bevor Sie diese Datei erstellt haben, hat die Shell noch versucht, das Muster zu erweitern, war jedoch nicht erfolgreich und hat das Muster so belassen, wie es ist. Also hat Mocha src/**/*.test.js bekommen, was Mocha selbst als Glob interpretiert hat.

Falls Sie sich fragen, ob die Option globstar in Bash aktiviert ist, entspricht ***.

+2

Vielen Dank. Das funktioniert perfekt. Ich nahm an, '**' würde funktionieren, weil es in meiner Shell (ZShell) funktioniert, aber es scheint, dass 'package.json' Skripte mit Bash ausgeführt werden. – SimpleJ

+0

Wie setze ich ein Muster in 'mocha' config? – Green

Verwandte Themen