Próbuję dodać testy jednostkowe do jednego z moich projektów.
Do tej pory zainstalowałem i skonfigurowałem karmę oraz zainstalowałem jaśmin. Mam jeden plik testowy w moim test/
folderze.
Serwer karma został uruchomiony, strona przeglądarki jest gotowa, ale karma run
kończy się niepowodzeniem w następujący sposób:
$ karma run karma-conf.js
[2014-06-14 15:19:11.046] [DEBUG] config - Loading config /foo/test/karma-conf.js
Waiting for previous execution...
Chrome 35.0.1916 (Linux) ERROR
You need to include some adapter that implements __karma__.start method!
Ten komunikat o błędzie nie jest dobrze Google.
Czy jest to coś oczywistego, czy muszę podać więcej informacji?
karma-runner
karma-jasmine
Drew Noakes
źródło
źródło
Odpowiedzi:
Wygląda na to, że jest to bardzo ogólny błąd, jednak w moim przypadku problem polegał na tym, że albo nie uruchomiłem
karma start
z właściwego folderu, albo nie uruchomiłem go ponownie po zmianie konfiguracji.Zostawię to pytanie otwarte i mam nadzieję, że może ono stać się źródłem informacji dla innych osób, które napotkają ten komunikat o błędzie.
źródło
karma start test/karma.conf.js
załatwiło sprawę. Właściwy katalog może być inny dla Ciebie.test/**/*.{js,jsx}
abytest/**/*.+(js|jsx)
naprawić ten błąd. Jakie to dziwne!Jeśli nazwiesz swój plik konfiguracyjny karmy
karma.conf.js
, możesz po prostu wpisaćkarma start
.W przeciwnym razie podaj nazwę pliku
karma start karmafile.js
(Byłem we właściwym katalogu, ale nie określałem nazwy pliku).
źródło
Musisz uruchomić swoją
karma run
lub inną funkcję w folderze, w którym znajduje się karma-conf.js.źródło
karma start
wsrc
podfolderze, w którym siękarma.conf.js
znajduje, pojawia się błąd[karma-server]: Server start failed on port 9876: Error: The '@angular-devkit/build-angular/plugins/karma' karma plugin is meant to be used from within Angular CLI and will not work correctly outside of it.
W moim przypadku musiałem zmienić nazwę pliku na karma.conf.js, a następnie uruchomić karmę
źródło
Miałem problem z
karma.conf.js
formatem kodu pliku:Dodatkowy przecinek w
files
tablicy spowodował ten błąd:źródło
Nie uruchamiałem polecenia uruchomienia karmy ze ścieżki, na której znajdował się mój karma.conf.js. Przełączyłem się do tego folderu i uruchomiłem to samo polecenie. To wszystko
źródło
Miałem do czynienia z tym problemem podczas uruchamiania specyfikacji w bazie kodu Angular.js. Musiałem biec,
npm install karma-jasmine -g
żeby to zadziałało.źródło
Jeśli wpiszesz „karma start”, musisz mieć plik karma.conf.js w bieżącym folderze. lub po prostu „karma start /path/karma.conf.js”
Spróbuj utworzyć nowy karmar.conf.js przez „karma init /path/karma.conf.js”
źródło
W moim przypadku przez pomyłkę aplikowałem preprocesor commonjs do
karma-*
modułów iadapter.js
fromkarma-chrome
i wkarma-firefox
ten sposób został uszkodzony.Niestety jest to bardzo ogólny błąd.
źródło
Otrzymałem ten sam błąd, ponieważ projekt korzystał z Babel 6 i zapomniałem dodać plik babelrc. Udostępnianie na wypadek, gdyby to mogło pomóc.
źródło
W moim przypadku komunikat był w istocie bardzo opisowy: zapomniałem dodać adapter, w moim przypadku Jasmine, do pliku konfiguracyjnego. A zatem:
źródło
Musisz skonfigurować swój plik „my.conf.js”, ponieważ zawiera on wszystkie informacje potrzebne do przetestowania kodu.
Wszystko, co musisz napisać, to:
Plik konfiguracyjny można wygenerować za pomocą karma init:
Którego frameworka testowego chcesz użyć? Naciśnij klawisz Tab, aby wyświetlić listę możliwych opcji. Enter, aby przejść do następnego pytania.
Czy chcesz używać Require.js? Spowoduje to dodanie wtyczki Require.js. Naciśnij klawisz Tab, aby wyświetlić listę możliwych opcji. Enter, aby przejść do następnego pytania.
Czy chcesz automatycznie przechwytywać przeglądarkę? Naciśnij klawisz Tab, aby wyświetlić listę możliwych opcji. Wpisz pusty ciąg, aby przejść do następnego pytania.
Jaka jest lokalizacja plików źródłowych i testowych? Możesz użyć wzorców glob, np. „js / *. js” lub „test / ** / * Spec.js”. Naciśnij Enter, aby przejść do następnego pytania.
Czy należy wykluczyć którykolwiek z plików zawartych w poprzednich wzorach? Możesz użyć wzorców glob, np. „** / *. swp”.
Czy chcesz, aby Karma obejrzała wszystkie pliki i przeprowadzała testy po zmianie? Naciśnij klawisz Tab, aby wyświetlić listę możliwych opcji.
Plik konfiguracyjny wygenerowany w „/Users/vojta/Code/karma/my.conf.js”.
źródło
Muszę dodać, że w moim przypadku karma dawała mi błąd, ponieważ miałem [kwadratowe] nawiasy w nazwie jednego z nadrzędnych folderów.
źródło
Przydarzył mi się ten sam problem, a wynikało to z przestarzałego modułu.
Uruchomienie
npm update
go rozwiązało.źródło
Narzeka na przejściówkę, która prawdopodobnie jest jaśminowa lub mokka. Albo brakuje adaptera, albo nie jest on poprawnie skonfigurowany, albo jest to przestarzała lub wadliwa wersja adaptera.
W moim przypadku miałem starą wersję mokki 2.5.3, która nie była kompatybilna z karmą 1+. Zaktualizowałem zależność mokka do najnowszej dostępnej wersji 3.2.0 i problem został rozwiązany.
źródło
Podczas pracy nad wieloma niejasno opisanymi błędami próbowałem ustawić basePath: '../', Po poprawieniu innych błędów (takich jak brakujące przecinki, które zostały opisane jako błędy zawartości obiektu) ostatnia zmiana z powrotem na basePath: '', spowodowała, że karma działała. Komunikaty błędów karmy wymagają dużo pracy. Nie jest łatwo to uruchomić.
źródło
Miałem ten sam problem. Moja przeglądarka otwierała się, ale na moim terminalu wyrzuciła następujący błąd
Sprawdziłem mój plik karma.conf.js. W tablicy ramowej umieściłem jaśmin i requirejs. Ale zainstalowałem tylko karma-jaśmin. Usunięcie requireJS i ponowne uruchomienie karmy działało!
źródło
Będziesz musiał określić katalog, w
karma.config.js
którym uruchomisz start karma.Próbować
karma start karma.config.js
źródło
Miałem złą konfigurację „plików” w moim karma.conf.js
to złapało wszystkie pliki w node_modules / w tym te z wtyczki karma-jasmine, ponieważ było postrzegane jako pliki źródłowe, które nie były ładowane podczas uruchamiania. Zmiana na
rozwiązał problem w moim przypadku
źródło
FWIW - pozyskiwanie ścieżki do pliku
karma.conf.js
działało dla mnie lokalnie, ale nie w moim konstruktorze Jenkins. Nie mam pojęcia, dlaczego tak jest, ale na jenkins wyrzucał ten błąd, chyba żekarma.conf.js
plik znajdował się w katalogu głównym, w którym podano polecenie karmy. Używam railsów i uruchamiam specyfikacje js przez zadanie rake. Poniżej znajduje się kod, który może być pomocny dla niektórych.https://gist.github.com/daino3/a39486ff8bfc1668e923
źródło
Problem w moim przypadku polegał na tym, że karma nie odebrała żadnych plików. Naprawienie tego w karma.conf.js rozwiązało problem.
źródło
W moim przypadku nie było to w ogóle związane z karmą! Uruchamiam karmę z łyka, z ES6 / babel i faktycznie wystąpił błąd składni kodu, oznaczony błędem babel nad moją karmą:
Naprawiłem to w moim src i karma była znowu szczęśliwa.
źródło
Ja też się z tym zmagałem. Doszedłem do wniosku, że ten błąd występuje z jednego z następujących powodów
karma.conf.js
w bieżącym katalogu lub brak pliku konfiguracyjnego określonego w poleceniu)Mój problem polegał na tym, że mój plik konfiguracyjny został nazwany
karma.config.js
zamiastkarma.conf.js
.Jeśli zainstalowałeś adapter testowy, ale nadal nie działa, spróbuj uruchomić
karma init
i przejść przez konfigurację z przewodnikiem.źródło
W moim przypadku nazwa pliku konfiguracyjnego była inna . Tak więc uruchomienie polecenia określającego plik conf rozwiązało mój problem.
W przypadku „PhantomJS” otwarcie podanego linku ( localhost: 9876 ) w przeglądarce powoduje wykonanie przypadków testowych.
Mam nadzieję, że to pomoże. :)
EDYCJA 1: Mój plik konfiguracyjny Karmy
źródło
Otrzymałem ten błąd, ponieważ dwukrotnie wymagałem tej samej zależności!
Usunięcie zduplikowanej zależności pliku spowodowało usunięcie błędu. Zakreślone na niebiesko poniżej.
źródło
Musisz określić plik konfiguracyjny karmy na karma.
Mi to pasuje
źródło