Я использую карму + жасмин + phantom для тестов без проверки Javascript.
Проблема заключается в том, что у меня есть действительно большое приложение, состоящее из множества модулей JS, которые я хочу протестировать. Поэтому мне нужны пользовательские макеты для каждого случая, а для каждого из них - пользовательский.
karma.conf.js
позволяет мне иметь массив files
, который состоит из шаблонов для всех файлов, которые будут включать в себя, что является БОЛЬШИМ, если мое приложение будет небольшим, а не большим приложением с тоннами файлов и модулей.
Мое решение - создайте несколько файлов karma.conf.js
для каждого тестового примера. Но это действительно отстой, так как много конфигурационных файлов - это большой вздутие, и если я захочу изменить один параметр (например, autoWatch), мне нужно будет изменить все файлы конфигурации.
My другое решение - написать собственный обработчик перед karma.conf.js
для обработки дополнительных параметров (специфицировать файл или папку для обхода кармы для поиска его конфигурационного файла) и просто построить массив files
динамически.
Теперь проблема, которую я вижу в этом, заключается в том, что карма работает только один раз, и я буду ограничен, чтобы запускать одну тестовую спецификацию... и Я НЕ ХОЧУ ИЗМЕНИТЬ КАРМА СЕБЯ.
Я также рассмотрел использование Grunt, но не нашел способ заставить его работать для нескольких тестовых случаев.
Кстати, моя идеальная структура была бы такой:
иметь файлы:
test/specs/category/unit1_spec.js
test/mocks/category/unit1_mock.js
конфигурационный файл:
files: [
{
'includes': [array_of_includes],
'spec': 'spec_file'
}
]
mock файл будет автоматически захвачен из соответствующего каталога mocks.
и я мог бы сделать karma start test/specs/category
, и он будет рекурсивно запускать все тестовые примеры внутри папки.
tl; dr - я хочу испытать удобное приложение.
Я был бы признателен за любое предложение по решению этой задачи.