Testowanie dużych aplikacji JS - unikanie wielu plików karma.conf.js

używamkarma + jaśmin + Fantom za moje bezgłowe testy Javascript.

Mam problem z tym, że mam naprawdę dużą aplikację składającą się z wielu modułów JS, które chcę przetestować.Potrzebuję więc niestandardowych makiet dla każdego przypadku i niestandardowego zestawu dla każdego przypadku.

karma.conf.js pozwala mi tylko miećfiles tablica składająca się z wzorców dla wszystkich plików, które mają być DOSKONAŁE, jeśli moja aplikacja byłaby mała, a nie duża, z dużą ilością plików i modułów.

Moje rozwiązanie na razie - stwórz wielekarma.conf.js pliki dla każdego przypadku testowego. Ale to naprawdę jest do bani, ponieważ posiadanie tak wielu plików konfiguracyjnych jest dużym nadęciem i gdybym chciał zmienić jedno ustawienie (na przykładautoWatch) Musiałbym zmienić wszystkie pliki konfiguracyjne.

Mójinne rozwiązanie - napisz niestandardową obsługę przedkarma.conf.js obsługiwać dodatkowe parametry (plik specyfikacji lub folder, aby ominąć karmę w celu przeszukiwania jej pliku konfiguracyjnego) i po prostu budowaćfiles tablica dynamicznie.

Teraz problem, jaki widzę z tym, jest taki, że karma działa tylko raz i byłbym ograniczony do uruchomienia jednej specyfikacji testowej ... iNIE CHCĘ MODYFIKOWAĆ SIEBIE KARMA.

Rozważałem również użycieChrząknięcie ale nie znalazłem sposobu, aby działał w wielu przypadkach testowych.

Nawiasem mówiąc, moja idealna struktura byłaby taka:

mieć pliki:

test/specs/category/unit1_spec.js
test/mocks/category/unit1_mock.js

plik konfiguracyjny:

files: [
  {
    'includes': [array_of_includes],
    'spec': 'spec_file'
  }
]

makieta zostanie automatycznie pobrana z odpowiedniego katalogu makiet.

i mogłem to zrobićkarma start test/specs/category i rekurencyjnie uruchomi wszystkie przypadki testowe wewnątrz folderu.

tl; dr - Chcę wygodnie przetestować dużą aplikację.

Byłbym wdzięcznykażdy sugestia, aby poradzić sobie z tym zadaniem.

questionAnswers(4)

yourAnswerToTheQuestion