#node.js #unit-testing #testing #mocha.js
Вопрос:
У меня проблема с мокко, он не понимает мою иерархию тестов! Я хочу, чтобы мои тесты были рядом с их кодовой базой, поэтому в моем проекте есть такая иерархия:
Level1
|_ level11
|_ level11.js
|_ level11.test.js
|_ level11111
|_ level11111.js
|_ level11111.test.js
|_ level12
|_ level12.js
|_ level12.test.js
|_ level121
|_ level121.js
|_ level121.test.js
Level2
|_ level2.js
|_ level2.test.js
Я перепробовал все! Используя **/**.test.js
или —recursive
флаг, ни один из них не делает то, что должен делать!
Ответ №1:
Linux для спасения! У меня была та же проблема в ОГРОМНОМ проекте, который буквально не имел никакой структуры! Некоторые разработчики поместили тесты в tests
папку, а некоторые другие во вложенные слои и … (некоторые тесты использовали мокко, а некоторые-шутку! В ТОМ ЖЕ проекте! :D)
Вы можете использовать:
mocha $(find . -name '*.spec.js')
в твоем package.json
так:
"scripts": {
"test": "mocha $(find . -name '*.spec.js')"
},
Ответ №2:
Вам нужно использовать recursive
с extension
флагом:
mocha --extension .test.js --recursive
Просто прочитайте документацию для —extension и —recursive для получения дополнительной информации.
Комментарии:
1. мокко-расширение .spec.js —рекурсивно . [ ты забыл точку в конце 🙂 ]
Ответ №3:
Настройте свой .mocharc.js
файл, чтобы разрешить выполнение рекурсивных тестов, как показано ниже:
module.exports = {
"recursive": true,
"exit": true,
"timeout": "10000",
"ignore": ["test/Helpers/*.js", "test/Samples/*.js", "test/Helpers/**/"],
"reporter": "mochawesome",
"reporterOptions": {
"reportDir": "mocha"
}
};