Тест рекурсивно с использованием мокко

#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"
    }
};