webentwicklung-frage-antwort-db.com.de

Karma führt aufgrund der Meldung "Kein erfasster Browser" keine Komponententests aus

Ich versuche, Karma so einzurichten, dass AngularJS-Komponententests mit Jasmine ausgeführt werden, aber ich kann die Tests nicht ausführen. Ich bin sicher, ich übersehe etwas einfaches. Ich führe dies auf einem Windows 7-Computer aus, auf dem Node.js installiert und Karma über npm installiert ist.

Meine Verzeichnisstruktur sieht so aus:

  • js/app/- enthält Controller, App usw
  • js/config/- enthält karma.conf.js
  • js/lib/- enthält eckig
  • js/test/- enthält Jasminspezifikationen

Ich starte eine Eingabeaufforderung im Verzeichnis js und führe folgenden Befehl aus:

karma start config/karma.conf.js

Dies führt dazu, dass Chrome auf Port 9876 ausgeführt wird. Wenn ich jedoch alle überwachten Dateien ändere und die Karma-Ausgabe überprüfe, sehe ich die folgende Infomeldung:

No captured browser, open http://localhost:9876/

Hier ist meine Konfigurationsdatei:

module.exports = function(config) {
  config.set({
    basePath: '../',
    frameworks: ['jasmine'],
    files: [
      'lib/angular.js',
      'app/**/*.js',
      'test/**/*.js'
    ],
    exclude: [
    ],
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Chrome'],
    captureTimeout: 60000,
    singleRun: false
  });
};

Ich verwende Angular 1.2.10 und Karma 0.10.9

36
levelnis

Ich hatte gerade das gleiche Problem in einem anderen Setup (Linux, QUnit, Firefox). Das Problem verschwand, nachdem ich alle Karma-Prozesse beendet und einen neuen karma start durchgeführt hatte.

9
user1460043

Ich hatte einen Gesicht Palm Moment . karma start muss in demselben Verzeichnis wie Ihre karma.conf.js-Datei ausgeführt werden.

8
Aligned

Dieser Fehler kann bedeuten, dass der Browser den Server nicht finden kann. Prüfen Sie, ob Sie den Server unter der angegebenen URL erreichen können. Es könnte sich um eine falsch konfigurierte Portnummer handeln oder sogar (wie in meinem Fall), dass localhost falsch konfiguriert ist. Ich nehme an, es könnte sein, dass der Server nicht läuft oder ein Dutzend anderer Probleme.

Prüfen Sie, ob Sie den Server manuell erreichen können. Wenn Sie nicht können, beheben Sie das.

7
mcv

Dies ist mir passiert, als ich eine endlose Schleife in meinem Code hatte. Durch Kommentieren (mit xdescribe in Jasmin) wurde der letzte Code, den ich geschrieben habe, erneut zum Laufen gebracht.

1
yndolok

Ich hatte das gleiche Problem, keine Codeänderungen, nur Tests, die vor einem Monat funktionierten, wurden erneut ausgeführt. 

Als ich von webstorm lief, schien es eine Weile zu dauern, bis der Browser erfasst wurde.

Also habe ich versucht, den Browser auf nur Chrome (ich verwendete ebenfalls phantomjs) einzustellen und zu warten. Dann auf Chrome und PhantomJS zurücksetzen, jetzt ist alles in Ordnung.

1
MarkSh

Ich hatte das gleiche Problem und habe viele der vorgeschlagenen Lösungen ausprobiert, die ich gefunden hatte, aber schließlich wurde es für mich gelöst, den Ordner node_modules zu löschen und alles per npm install neu zu installieren.

dasselbe Problem: Karma - Chrome 2 Mal fehlgeschlagen (kann nicht gestartet werden). Aufgeben

1
Gerros

Ich hatte das gleiche Problem und es war ein Fehler in einem Test. Das Entfernen dieses Codes behebt den Fehler.

0
Laszlo Sarvold

Die Installation von karma-cli npm install -g karma-cli hat dieses Problem für mich gelöst.

0
exp

Hatte vor kurzem den gleichen Fehler:

  • ein Projekt mit angular-cli
  • tests, die auf Jenkins in einer Headless-Umgebung ausgeführt werden.

Es stellte sich heraus, dass ich einen Jenkins-Job zuvor in dem Schritt abgebrochen hatte, in dem die Tests ausgeführt wurden. Daher ng test nicht beendet wurde (hatte eine Handvoll ng-Prozesse ausgeführt, die mit [node] <defunct>-Prozessen gekoppelt waren und die weitere Testausführung blockierten). Die Lösung bestand darin, alle hängenden ng-Prozesse zu finden und zu töten:

$ Sudo -su jenkins
# ps aux | grep "ng$" | awk '{print $2}' | xargs kill -9
0
hoefling

Ich hatte das gleiche Problem und tat alles, was alle von hier ohne Ergebnis sagten. In meinem Fall habe ich die Init nicht gemacht:

C:\Users>cd c:\xampp\htdocs\angularjs-pro\ch07

c:\xampp\htdocs\angularjs-pro\ch07>karma init

Which testing framework do you want to use ?
Press tab to list possible options. Enter to move to the next question.
> jasmine

Do you want to use Require.js ?
This will add Require.js plugin.
Press tab to list possible options. Enter to move to the next question.
> no

Do you want to capture any browsers automatically ?
Press tab to list possible options. Enter empty string to move to the next question.
> Chrome

Das zweite Mal, als ich in die gleiche Situation geriet, war, als ich versuchte, karma start im falschen Ordner zu machen, nicht dort, wo ich karma init abgelegt habe.

In beiden Fällen, nachdem ich das Problem behoben hatte, bekam ich die Konsole von Witwen:

22 11 2016 14:06:51.697:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
22 11 2016 14:06:51.698:INFO [launcher]: Launching browser Chrome with unlimited concurrency
22 11 2016 14:06:51.711:INFO [launcher]: Starting browser Chrome
22 11 2016 14:06:53.936:INFO [Chrome 54.0.2840 (Windows 10 0.0.0)]: Connected on socket /#HnJUQrkRPqtGFa5ZAAAA with id 16058274
0
John Smith

Ich war mit demselben Problem konfrontiert und habe es gelöst, indem ich alle Chrome-Instanzen vom Task-Manager beendet habe. Es scheint, dass es n 'n Anzahl von Testläufern gab. Wenn Sie den Karma-Testrunner schließen, ohne den Server zu stoppen, ist die Instanz noch aktiv. 

Drücken Sie also "Alt + Strg + Löschen", beenden Sie alle Sitzungen/Instanzen von Chrome und starten Sie Karma neu.

Es klappt!

0
Rahul Sharma