2016-11-22 2 views
1

Я пытаюсь создать тестовую среду, в которой все исходный файл находится рядом с его тестовым кодом. Это связано с тем, что легко отслеживать, какой файл находится без тестового кода. Ниже приведен пример моего каталога после запуска построитьMocha, как игнорировать папку node_modules

built/api/a.js 
built/api/a-test.js 
built/api/b.js 
built/api/b-test.js 
built/index.js 
built/index-test.js 
built/node_modules/... 
built/package.json 
src/api/a.js 
src/api/a-test.js 
src/api/b.js 
src/api/b-test.js 
src/index.js 
src/index-test.js 
src/package.json 
package.json 

я собираюсь запустить свой тест на ходу «тест НПМ», ниже мое содержание package.json:

{ "name": "sample", 
    "scripts": { 
    "build": "babel ./src -d ./built && cd built && npm install", 
    "test": "mocha built/**/*-test.js" 
    }, 
    "devDependencies": { 
    "babel-cli": "^6.18.0", 
    "babel-core": "^6.18.0", 
    "mocha": "^3.1.2" 
    } 
} 

Мой вопрос заключается в том я могу пропустить эти файлы в папке node_modules совпадению имеет имя заканчивается -test.js

+1

Кажется, что Mocha не поддерживает его OOB, но пара хороших идей - https://github.com/mochajs/mocha/issues/1577 – tiblu

+1

Обычно вы должны запускать тесты до этапа сборки –

ответ

0

немного опоздали на вечеринку (старше 13 месяцев !?), но ...

Mocha не поддерживает это из бо Икс. Вам нужно использовать свой глобу-фу и получить немного фантазии. Запуск что-то вроде этого на командной строке следует сделать трюк:

mocha './built/{,!(node_modules)/**}/*-test.js' 

Узор Глоб {,!(node_modules)/**} говорит

записи Возьмите в текущем каталоге или в любой подкаталог текущего каталога, независимо от глубины , за исключением тех, которые внедрены в ./build/node_modules.

Обратите внимание, что одиночные кавычки являются по существу требуется на Boxen OS X или Linux. Оставленный как гоночный (без кавычек) или цитируемый с двойными кавычками, вы получите скопление оболочки вместо внутреннего glob(), используемое mocha, так что вы вряд ли получите ожидаемые результаты ... если у вас нет атипичной оболочки ,

Оболочка Windows поддерживает только двойное цитирование ... и у нее нет подстроки командной строки, поэтому в Windows вы, вероятно, захотите оставить эту неуказанную (но не так, err, quote me on что).

Лучше, более платформы агностик способом было бы поставить шаблон Глоб в файле test/mocha.opts, таким образом:

--require ./test/setup.js 
--colors 
--inline-diffs 
./built/{,!(node_modules)/**}/*-test.js 

Ура!

Смежные вопросы