Почему плагин не видит файлы, когда файлы на 100% существуют в моей папке test
?
Я хочу запустить тест только для определенных файлов.
Как мне это сделать с помощью mocha
?
Моя установка:
// test folder. Files are the same. Changed name for the sake of showing you an error
/test
nock.js
nock_test.js
// package.json
"scripts": { "test": "mocha" }
Ничего из этого не работает. Все выдают одну и ту же ошибку:
$ npm test nock
$ npm test nock.js
$ npm test nock_test
$ npm test nock_test.js
Ошибка:
Предупреждение: не удалось найти тестовые файлы, соответствующие шаблону: nock
Предупреждение: не удалось найти тестовые файлы, соответствующие шаблону: nock.js
Предупреждение: не удалось найти тестовые файлы, соответствующие шаблону: nock_test
Предупреждение: не удалось найти тестовые файлы, соответствующие шаблону: nock_test.js
Тестовые файлы не найдены
npm ERR! Тест не пройден. Подробнее см. Выше.
Как это может быть? Нет test files matching pattern
? Это даже не узор! Это в точности имя файла.
Как его запустить?
Вы должны написать test/nock.js
/ test/test_nock.js
вместо просто nock.js
/ test_nock.js
. Сообщите нам, если это решит вашу проблему!
(Mocha поддерживает размещение ваших тестовых файлов в папках, отличных от test
; например, некоторые проекты помещают тестовые файлы в те же папки, что и соответствующие исходные файлы, и с тем же именем, за исключением использования .test.js
или .spec.js
вместо .js
в конце имени тестового файла. Это компромисс между чистотой исходных каталогов и простотой ассоциации теста и исходного кода, но важно то, что Mocha поддерживает оба и, следовательно, победил. Чтобы предотвратить это, превратив lib/someModule.spec.js
в test/lib/someModule.spec.js
.)
В моем проекте:
"test": "mocha --compilers js:babel-core/register -r ./test/setup.js './src/**/*.spec.js*'"
Когда я запускаю npm test
:
Предупреждение: не удалось найти тестовые файлы, соответствующие шаблону: './src/ * / .spec.js *'
Please, help me!
Похоже, что мокко включает одинарные кавычки в сам узор. Мне удалось обойти это, используя экранированные двойные кавычки:
"test": "mocha --compilers js:babel-core/register -r ./test/setup.js \"./src/**/*.spec.js*\""
Здравствуй ! У меня такая же проблема, но здесь с Circle CI 2.0 (Ubuntu 14.04)
Прекрасно работает на MacOSX и Ubuntu 16.04, как я могу решить эту ошибку с помощью среды Circle CI? Кажется, это трюк с Мокко ... Большое спасибо!
В моем термине:
$ eslint .
$ mocha "./src/migrations/index.test.js" --require babel-core/register
Warning: Could not find any test files matching pattern: ./src/migrations/index.test.js
No test files found
error Command failed with exit code 1.
Мой package.json:
...
"test-migrations": "mocha \"./src/migrations/index.test.js\" --require babel-core/register",
"test": "yarn run lint && yarn run test-migrations && mocha \"./src/index.test.js\" --require babel-core/register",
...
У меня похожая проблема :
mocha --opts "/c/my-project/mocha.opts" "/c/my-project/src/rest_test/**/*.tsx"
Не работает.
Однако это действительно так:
mocha --opts "/c/my-project/mocha.opts" "c:/my-project/src/rest_test/**/*.tsx"
(обратите внимание, что /c/
становится c:/
)
Путь к параметрам допустим с нотацией unix, но не путь к тестовым файлам.
@xurei - единственное, что я здесь видел, что могло быть настоящей ошибкой Mocha. Я попробую воспроизвести это.
@xurei Какую оболочку вы используете?
Если вы используете PowerShell, glob (который интерпретирует ваш путь, содержащий глобус, поскольку он заключен в двойные кавычки) ожидает, что ваши пути будут выглядеть как ваш второй пример; первый пример не является допустимым путем, AFAICT.
Если вы используете bash в Windows, то любой из них должен работать, по крайней мере, в моем ограниченном тестировании.
@boneskull Я использую Git BASH
В моем package.json
есть это:
"test": "mocha server/spec/server-spec.js; RES=$?; kill %1; exit $RES"
И моя файловая структура:
server
spec
server-spec.js
И, конечно, сейчас я нахожусь в корневом каталоге, где находится каталог сервера, но когда я запускаю npm test
я получаю эту ошибку:
Warning: Could not find any test files matching pattern: server/spec/server-spec.js;
Я использую ОС Windows. Я пробовал cmd.exe
(Cygwin установлен и добавлен в переменные среды) & Git Bash
, но результат тот же ... Есть идеи?
@MuhammadJamaluddin , вы _должны_ просто иметь:
"scripts": {
"test": "mocha server/spec/server-spec.js"
}
В зависимости от того, какую версию мокко вы используете, вы можете увидеть что-то полезное в выводе отладки, используя cross-env
и запустив его следующим образом:
$ npm install --save-dev cross-env
`` json
"scripts": {
"test": "cross-env DEBUG = * mocha server / spec / server-spec.js"
}
Or use a glob and just see what mocha finds... JIC you misspelled something...
```json
"scripts": {
"test": "cross-env DEBUG=* mocha 'server/**/*.js'"
}
Самый полезный комментарий
Похоже, что мокко включает одинарные кавычки в сам узор. Мне удалось обойти это, используя экранированные двойные кавычки: