2016-11-15 3 views
2

Я реорганизую один бэкэнд в своей компании, и я его максимально модулирую. Моя структура может быть определена как monorepo, состоящая из нескольких локальных подмодулей и одного или двух основных модулей, которые требуют их (подмодулей). Проиллюстрируем это:Запуск лабораторного теста для всех тестовых подпапок

  • корень
    • главный
    • package.json
    • материал, который использует submoduleA
    • материал, который использует submoduleB
    • тест
    • модули
      • submoduleA
      • package.json
      • код
      • тест
    • submoduleB
      • package.json
      • тест

Как вы можете видеть, каждый модуль имеет свои собственные тесты, package.json и зависимости. Все работает безупречно внутри них (работает npm test внутри папки модуля, например). Я использую lab и code для тестирования.

Я хочу, чтобы иметь возможность сделать это в корне проекта, запустите npm test и запустите все тесты для всех подмодулей и основного модуля. В основном запустите все тесты в любой тестовой папке за один раз.

Проблемы, которые я нашел до сих пор: - В настоящее время запускаются только файлы под целевым тестовым каталогом. Я даже не знаю, как запустить все тесты сразу. Моя команда выглядит как lab src/main/test --reporter console --threshold 100 --assert code

То, что я сейчас делаю, ставит все тесты под одной и той же тестовой директорией и делает относительные требования ко всему. Это очень неудобно, потому что делает тест хрупким со всеми этими ../../../some/away/path требует и этот материал.

Любые советы по сохранению кода в модуле и возможность запуска всего теста сразу будут очень желанными. Большое спасибо.

Я спросил это неделю назад на hapijs хранилища, так что если вы хотите, чтобы ответить там тоже было бы хорошо: https://github.com/hapijs/discuss/issues/397

ответ

0

Я бы предложил сделать submoduleA и submoduleB автономных модулей узлов, то вы можете установить и использовать при необходимости, с основным модулем. Таким образом, вы тестируете каждую часть отдельно, а затем вместе, что должно дать тот же результат и позволит вам легче выполнять тесты.

+0

У меня есть некоторые подмодули, которые работают таким образом, они управляются как локальные модули npm и фактически установлены в папку node_modules.У них есть своя тестовая папка, и я могу тестировать каждую по отдельности. Но у меня нет способа проверить всю вещь за один раз. Не могли бы вы рассказать о второй части? Тестирование их вместе? – Danielo515

+0

При тестировании модуля верхнего уровня вы тестируете все модули вместе –

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

  • Нет связанных вопросов^_^