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.