web-dev-qa-db-fra.com

Karma - Chrome a échoué 2 fois (impossible de démarrer). Abandonner

J'ai essayé d'exécuter mes tests en utilisant karma-chrome-launcher, mais chaque fois que je lance mes tests, l'erreur suivante est générée: 

INFO [lanceur]: démarrage du navigateur Chrome ERREUR [lanceur]: impossible de démarrer Chrome

INFO [launcher]: Trying to start Chrome again (1/2).
ERROR [launcher]: Cannot start Chrome

INFO [launcher]: Trying to start Chrome again (2/2).
ERROR [launcher]: Cannot start Chrome

ERROR [launcher]: Chrome failed 2 times (cannot start). Giving up.

Voici mon code karma.conf.js:

// Karma configuration
// Generated on Mon Mar 23 2015 14:04:19 GMT-0300 (BRT)

module.exports = function(config) {
  config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: 'www',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: [
      'lib/ionic/js/angular/angular.js',
      'lib/ionic/js/angular/angular-animate.js',
      'lib/ionic/js/angular/angular-sanitize.js',

      '../node_modules/jasmine-core/lib/jasmine-core/jasmine.js',
      '../node_modules/mock-local-storage/lib/mock-localstorage.js',
      '../node_modules/angular-mocks/angular-mocks.js',
      //'../node_modules/requirejs/require.js',
      'lib/ionic/js/angular/angular-resource.js',
      'lib/ionic/js/angular-ui/angular-ui-router.js',
      'lib/ionic/js/ionic.js',
      'lib/ionic/js/ionic-angular.js',
      /*'../tests/libs/ngCordovaMocks.min.js',*/
      'js/lib/ng-cordova.min.js',
      'js/*.js',
      'js/controllers/*.js',
      'js/services/*.js',
      'js/factory/*.js',
      //'../tests/*.js',
      '../tests/**/*.js'
    ],


    // list of files to exclude
    exclude: [
    ],


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
    },


    // test results reporter to use
    // possible values: 'dots', 'progress'
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter
    reporters: ['progress', 'html'],

    htmlReporter: {
      outputFile: '../tests/report/index.html'
    },


    // web server port
    port: 9876,

    plugins : [
      'karma-junit-reporter',
      'karma-jasmine',
      'karma-phantomjs-launcher',
      'karma-chrome-launcher'
      //'karma-htmlfile-reporter'
    ],

    // enable / disable colors in the output (reporters and logs)
    colors: true,


    // level of logging
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: true,


    // start these browsers
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
    browsers: ['PhantomJS'],


    // Continuous Integration mode
    // if true, Karma captures browsers, runs the tests and exits
    singleRun: false
  });
};

J'installe le module ici: https://www.npmjs.com/package/karma-chrome-launcher

Merci!

14
SupimpaAllTheWay

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.

10
Gerros

Avait le même problème avec mon environnement de construction. 

Ce que j'ai fait est de suivre les conseils de Rafael Cichocki pour permettre le débogage: 

logLevel: config.LOG_DEBUG

Puis essayé de lancer le navigateur Chrome avec exactement la même ligne qui était visible dans la sortie de débogage. 

Il s'est avéré que le navigateur Chrome se bloquait en raison de polices ttf manquantes. Alors en cours d'exécution:

apt-get install ttf-freefont

Ce problème a été résolu pour moi et le karma a commencé à lancer Chrome.

3
Vladimir M

J'ai remarqué, lorsque j'ai eu cette erreur, que lorsque j'ai modifié le fichier de spécifications et que je l'ai enregistré, cela a semblé fonctionner à nouveau. J'ai eu quelques erreurs dans TypeScript qui n'ont pas interrompu les tests (transmission d'arguments nuls à un constructeur d'instance de composant virtuel). Je ne sais pas si cela résolvait les erreurs, car elles existaient auparavant, ou si changer le fichier et le sauvegarder a mis à jour le cache.

Cela pourrait donc signifier que la suppression du cache dans Chrome pourrait également le résoudre. Cela fonctionne à nouveau pour moi alors je ne peux pas vérifier pour vérifier.

2
David

La solution pour nous avec cli angulaire définissait les propriétés suivantes dans le fichier karma.conf.js

 autoWatch: false,
 singleRun: true
1
Alexander

J'ai partiellement eu mon inspiration d'ici: https://stackoverflow.com/a/33802985/1534823

Utilisez également logLevel: config.LOG_DEBUG - il peut vous aider à obtenir de bonnes informations sur la cause de votre erreur`

Vérifiez les paramètres suivants dans karma.conf:

captureTimeout: 60000,
browserNoActivityTimeout: 360000
browser: ["Firefox"]
  • captureTimeout - votre navigateur peut prendre un certain temps pour démarrer. LOG_DEBUG devrait afficher une erreur liée à la capture de votre navigateur
  • browserNoActivityTimeout - PhantomJS est vraiment lent (x10) sur ma machine, par rapport à Firefox et Chrome. Karma peut expirer avant la fin de vos tests.
  • browser - notre serveur Jenkins fonctionne sur Linux, où nous n'avions aucun fichier binaire pour Chrome, nous avons donc dû passer à Firefox

Si l'un de ces trois paramètres n'était pas défini correctement, nous obtiendrions l'erreur décrite ci-dessus.

0
Rafael Emshoff