web-dev-qa-db-fra.com

Karma n'exécute pas les tests unitaires en raison du message "Aucun navigateur capturé"

J'essaie de configurer Karma pour qu'il exécute des tests unitaires AngularJS avec Jasmine, mais je ne parviens pas à faire exécuter les tests. Je suis sûr que je néglige quelque chose de simple. J'exécute ceci sur une machine Windows 7 avec Node.js installé et karma installé via npm.

Ma structure de répertoire ressemble à ceci:

  • js/app/- contient les contrôleurs, l'application, etc.
  • js/config/- contient karma.conf.js
  • js/lib/- contient angular
  • js/test/- contient les spécifications de jasmin

Je lance une invite de commande dans le répertoire js et exécute cette commande:

karma start config/karma.conf.js

Cela provoque l'exécution de Chrome sur le port 9876, mais chaque fois que je modifie un fichier surveillé et que je vérifie la sortie de Karma, le message d'information suivant s'affiche:

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

Voici mon fichier de configuration:

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
  });
};

J'utilise Angular 1.2.10 et Karma 0.10.9

36
levelnis

Je viens d'avoir le même problème dans une configuration différente (Linux, QUnit, Firefox), cependant. Le problème a disparu après que j'ai tué tous les processus de karma et fait un nouveau karma start.

9
user1460043

J'ai eu un moment face Palm . karma start doit être exécuté dans le même répertoire que votre fichier karma.conf.js.

8
Aligned

Cette erreur peut signifier que le navigateur ne peut pas trouver le serveur. Vérifiez si vous pouvez atteindre le serveur à l’URL qu’il mentionne. Cela pourrait être un numéro de port mal configuré, ou même (comme dans mon cas), localhost étant mal configuré. Je suppose que cela pourrait être le serveur ne fonctionne pas, ou l'un des douze autres problèmes.

Vérifiez si vous pouvez atteindre le serveur manuellement. Si vous ne pouvez pas, corrigez cela.

7
mcv

Cela m'est arrivé quand j'ai eu une boucle sans fin dans mon code. En commentant (en utilisant xdescribe dans jasmine) le code récent que j'ai écrit a relancé les tests.

1
yndolok

J'ai eu le même problème, pas de changement de code, juste pour relancer les tests qui ont fonctionné il y a un mois. 

Quand j’ai couru de webstorm, il semblait prendre beaucoup de temps pour capturer le navigateur, je me suis donc demandé s’il y avait un dépassement de délai.

J'ai donc essayé de configurer le navigateur sur Chrome (j'utilisais aussi phantomjs), et j'attendais. Puis réinitialisez à Chrome et PhantomJS, maintenant tout va bien.

1
MarkSh

J'ai eu le même problème et essayé beaucoup des solutions suggérées que j'ai trouvées, mais ce qui a finalement été résolu pour moi a été de supprimer le dossier node_modules et d'obtenir toutes les nouveautés via l'installation de npm.

même problème: Karma - Chrome a échoué 2 fois (impossible de démarrer). Abandonner

1
Gerros

L'installation de karma-cli npm install -g karma-cli a résolu ce problème pour moi . J'espère que cela vous aidera.

0
exp

A eu la même erreur récemment:

  • un projet utilisant angular-cli
  • tests fonctionnant sur Jenkins dans un environnement sans tête.

Il s'avère que j'ai annulé un travail Jenkins précédemment dans l'étape où les tests étaient en cours d'exécution, donc ng test n'a pas quitté la tâche (plusieurs processus en cours d'exécution ng, associés à ceux de [node] <defunct>, bloquaient l'exécution du test suivant). La solution consistait à trouver et à tuer tous les processus ng suspendus:

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

J'ai eu le même problème et j'ai fait tout ce que tout le monde d'ici a dit sans résultat. Dans mon cas je n'ai pas fait l'init:

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

La deuxième fois, lorsque je me suis retrouvé dans la même situation, c’est lorsque j’ai essayé de faire karma start dans le mauvais dossier, et non pas où je mets karma init.

Dans les deux cas, après avoir résolu le problème, je suis dans la console veuves:

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

Je faisais face au même problème et je l'ai résolu en supprimant toutes les instances de chrome du gestionnaire de tâches. Il semble qu'il n'y ait pas eu beaucoup de coureurs de test en cours d'exécution. Lorsque vous fermez le programme d’exécution du test de karma sans arrêter le serveur, son instance est toujours active. 

Alors appuyez sur 'alt + ctrl + delete', tuez toutes les sessions/instances de chrome et redémarrez Karma.

Ça marche!

0
Rahul Sharma