Ich versuche, einem meiner Projekte einige Komponententests hinzuzufügen.
Bisher habe ich Karma installiert und konfiguriert und Jasmin installiert. Ich habe eine Testdatei in meinem test/
Ordner.
Der Karma-Server wurde gestartet, die Browserseite ist bereit, karma run
schlägt jedoch wie folgt fehl:
$ 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!
Diese Fehlermeldung funktioniert nicht gut bei Google.
Ist das etwas Offensichtliches oder muss ich weitere Informationen bereitstellen?
karma-runner
karma-jasmine
Drew Noakes
quelle
quelle
Antworten:
Es scheint, dass dies ein sehr allgemeiner Fehler ist. In meinem Fall bestand das Problem jedoch entweder darin, dass ich nicht
karma start
aus dem richtigen Ordner ausgeführt habe oder dass ich ihn nach dem Ändern der Konfiguration nicht neu gestartet habe.Ich lasse diese Frage offen und hoffe, dass sie eine Ressource für andere sein kann, bei denen diese Fehlermeldung auftritt.
quelle
karma start test/karma.conf.js
hat den Trick für mich getan. Das richtige Verzeichnis kann für Sie unterschiedlich sein.test/**/*.{js,jsx}
antest/**/*.+(js|jsx)
dieser Fehler behoben. Wie bizarr!Wenn Sie Ihre Karma-Konfigurationsdatei benennen
karma.conf.js
, können Sie einfach eingebenkarma start
.Andernfalls geben Sie den Dateinamen an
karma start karmafile.js
(Ich war im richtigen Verzeichnis, habe aber keinen Dateinamen angegeben.)
quelle
Sie müssen Ihre
karma run
oder eine andere Funktion in dem Ordner ausführen, in dem sich karma-conf.js befindet.quelle
karma start
in einemsrc
Unterordner laufe, in dem sich daskarma.conf.js
befindet, erhalte ich eine Fehlermeldung[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.
In meinem Fall musste ich die Datei in karma.conf.js umbenennen und dann karma starten
quelle
Ich hatte ein Problem mit dem
karma.conf.js
Dateicodeformat:Das zusätzliche Komma im
files
Array hat diesen Fehler verursacht:quelle
Ich habe den Karma- Startbefehl nicht von dem Pfad aus ausgeführt, auf dem sich meine karma.conf.js befand. Ich wechselte zu diesem Ordner und führte den gleichen Befehl aus. Das ist alles
quelle
Ich war mit diesem Problem konfrontiert, als ich Spezifikationen für die Angular.js-Codebasis ausführte. Ich musste rennen
npm install karma-jasmine -g
, um das zum Laufen zu bringen.quelle
Wenn Sie "karma start" eingeben, muss sich im aktuellen Ordner eine Datei "karma.conf.js" befinden. oder einfach "karma start /path/karma.conf.js"
Versuchen Sie, eine neue karmar.conf.js mit "karma init /path/karma.conf.js" zu erstellen.
quelle
In meinem Fall wurde die Anwendung ich Fehler durch die Commonjs Vorprozessor auf die
karma-*
Module und dieadapter.js
auskarma-chrome
undkarma-firefox
wurde auf diese Weise gebrochen.Leider ist dies ein sehr allgemeiner Fehler.
quelle
Ich habe den gleichen Fehler erhalten, weil das Projekt Babel 6 verwendete und ich vergessen hatte, die babelrc-Datei hinzuzufügen. Nur teilen, falls dies helfen könnte.
quelle
In meinem Fall war die Nachricht tatsächlich sehr beschreibend: Ich habe vergessen, der Konfigurationsdatei einen Adapter hinzuzufügen, in meinem Fall Jasmine. So:
quelle
Sie müssen Ihre Datei "my.conf.js" konfigurieren, da sie alle Informationen enthält, die zum Testen Ihres Codes verwendet werden können.
Alles was Sie schreiben müssen ist Folgendes:
Die Konfigurationsdatei kann mit karma init generiert werden:
Welches Testframework möchten Sie verwenden? Drücken Sie die Tabulatortaste, um mögliche Optionen aufzulisten. Geben Sie ein, um zur nächsten Frage zu gelangen.
Möchten Sie Require.js verwenden? Dadurch wird das Require.js-Plugin hinzugefügt. Drücken Sie die Tabulatortaste, um mögliche Optionen aufzulisten. Geben Sie ein, um zur nächsten Frage zu gelangen.
Möchten Sie einen Browser automatisch erfassen? Drücken Sie die Tabulatortaste, um mögliche Optionen aufzulisten. Geben Sie eine leere Zeichenfolge ein, um zur nächsten Frage zu gelangen.
Wo befinden sich Ihre Quell- und Testdateien? Sie können Glob-Muster verwenden, z. "js / *. js" oder "test / ** / * Spec.js". Drücken Sie die Eingabetaste, um zur nächsten Frage zu gelangen.
Sollte eine der in den vorherigen Mustern enthaltenen Dateien ausgeschlossen werden? Sie können Glob-Muster verwenden, z. "** / *. swp".
Möchten Sie, dass Karma alle Dateien überwacht und die Tests bei Änderungen ausführt? Drücken Sie die Tabulatortaste, um mögliche Optionen aufzulisten.
Konfigurationsdatei generiert unter "/Users/vojta/Code/karma/my.conf.js".
quelle
Ich muss hinzufügen, dass in meinem Fall Karma mir den Fehler gab, weil ich [eckige] Klammern im Namen eines der übergeordneten Ordner hatte.
quelle
Das gleiche Problem ist mir passiert und es lag an einem veralteten Modul.
Laufen hat es
npm update
gelöst.quelle
Tt beschwert sich über den Adapter, der wahrscheinlich Jasmin oder Mokka ist. Entweder fehlt der Adapter, entweder ist er nicht richtig eingerichtet, es handelt sich um eine veraltete oder fehlerhafte Version des Adapters.
In meinem Fall hatte ich eine alte Version von Mokka 2.5.3, die nicht mit Karma 1+ kompatibel war. Ich habe die Mokka-Abhängigkeit auf die neueste verfügbare Version 3.2.0 aktualisiert und das Problem behoben.
quelle
Während ich an zahlreichen vage beschriebenen Fehlern arbeitete, versuchte ich, basePath zu setzen: '../'. Nachdem ich andere Fehler (wie fehlende Kommas, die als Fehler beim Objektinhalt beschrieben wurden) korrigiert hatte, brachte die letzte Änderung von basePath: '' Karma zum Laufen. Karmas Fehleraussagen erfordern viel Arbeit. Es ist nicht einfach, es in Gang zu bringen.
quelle
Ich hatte das gleiche Problem. Mein Browser wurde geöffnet, aber auf meinem Terminal wurde der folgende Fehler ausgegeben
Ich habe meine Datei karma.conf.js überprüft. In das Framework-Array hatte ich Jasmin und Requirejs aufgenommen. Aber ich hatte nur Karma-Jasmin installiert. Das Entfernen von requireJS und das erneute Ausführen des Karma-Starts funktionierten!
quelle
Sie müssen das Verzeichnis von angeben
karma.config.js
Sie Startkarma ausführen.Versuchen
karma start karma.config.js
quelle
Ich hatte eine schlechte 'Dateien'-Konfiguration in meiner karma.conf.js
Dies hat alle Dateien in node_modules / einschließlich derjenigen des Karma-Jasmin-Plugins erfasst, da es als Sourde-Dateien angesehen wurde, die beim Start nicht geladen wurden. Wechseln zu
löste das Problem in meinem Fall
quelle
FWIW - Beschaffung des Dateipfads von
karma.conf.js
arbeitete lokal für mich, aber nicht auf meinem Jenkins Builder. Ich habe keine Ahnung, warum dies der Fall ist, aber bei Jenkins wurde dieser Fehler ausgelöst, es sei denn, diekarma.conf.js
Datei befand sich im Stammverzeichnis, in dem der Befehl karma gegeben wurde. Ich verwende Schienen und führe die js-Spezifikationen durch eine Rechenaufgabe. Der Code befindet sich unten, was für einige hilfreich sein kann.https://gist.github.com/daino3/a39486ff8bfc1668e923
quelle
Das Problem in meinem Fall war, dass Karma keine Dateien aufnahm. Das Problem wurde behoben, indem es in karma.conf.js behoben wurde.
quelle
In meinem Fall hatte es überhaupt nichts mit Karma zu tun! Ich führe Karma von gulp mit ES6 / babel aus, und es gab tatsächlich einen Code-Syntaxfehler, der durch einen Babel-Fehler über meinem Karma gekennzeichnet ist:
Ich habe das in meinem src behoben und Karma war wieder glücklich.
quelle
Ich habe auch damit zu kämpfen. Ich bin darauf gekommen, dass dieser Fehler aus einem der folgenden Gründe auftritt
karma.conf.js
im aktuellen Verzeichnis oder keine im Befehl angegebene Konfigurationsdatei )Mein Problem war, dass meine Konfigurationsdatei
karma.config.js
anstelle von benannt wurdekarma.conf.js
.Wenn Sie die installiert haben Prüfadapter aber es funktioniert immer noch nicht funktioniert, versuchen Sie laufen
karma init
und die geführte Config Setup durchlaufen.quelle
In meinem Fall war der Name der Konfigurationsdatei anders . Das Ausführen des Befehls unter Angabe der conf- Datei hat mein Problem behoben.
Und für 'PhantomJS' werden die Testfälle ausgeführt, indem der angegebene Link ( localhost: 9876 ) im Browser geöffnet wird.
Ich hoffe es hilft. :) :)
EDIT 1: Meine Karma-Konfigurationsdatei
quelle
Ich habe diesen Fehler erhalten, weil ich zweimal dieselbe Abhängigkeit benötigte!
Durch das Entfernen der Abhängigkeit von doppelten Dateien wurde der Fehler für mich behoben. Unten blau eingekreist.
quelle
Sie müssen die Karma-Konfigurationsdatei für Karma angeben .
Für mich geht das
quelle