web-dev-qa-db-ja.com

Karma-Chromeは2回失敗しました(開始できません)。

私はkarma-chrome-launcherを使用してテストを実行しようとしましたが、テストを実行するたびにこのエラーがスローされます:

情報[ランチャー]:ブラウザーの起動Chromeエラー[ランチャー]: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.

これが私の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
  });
};

ここにモジュールをインストールしています: https://www.npmjs.com/package/karma-chrome-launcher

ありがとう!

20

私は同じ問題を抱えていて、提案された多くの解決策を試しましたが、最終的にそれを解決したのは、node_modulesフォルダーを削除し、npm installですべてを新しくすることでした

12
Gerros

私のビルド環境でも同じ問題がありました。

私がしたことは、Rafael Cichockiのアドバイスに従ってデバッグを有効にすることです:

logLevel: config.LOG_DEBUG

次に、デバッグ出力で表示された行とまったく同じ行でchrome-browserを起動しようとしました。

chrome ttfフォントがないためにブラウザがクラッシュしていることが判明しました。

apt-get install ttf-freefont

私のためにその問題を解決し、カルマはクロムを起動し始めました。

3
Vladimir M

このエラーが発生したとき、specファイルを変更して保存すると、再び機能するように見えました。 TypeScriptでいくつかのエラーが発生し、テストを中断しませんでした(仮想コンポーネントインスタンスコンストラクターにnull引数を渡す)。エラーが動作していたときに以前から存在していたためにエラーを解決していたのか、ファイルを変更して保存するとキャッシュが更新されたのかはわかりません。

したがって、これはChromeでキャッシュをクリアすることでも解決できる可能性があることを意味する可能性があります。

2
David

angular cliを使用したソリューションは、karma.conf.jsで以下のプロパティを設定していました

 autoWatch: false,
 singleRun: true
1
Alexander

絶対パス(src/examplePath)を相対パス(../../examplePath)。

仕様の変更例:

import { myPackage } from 'src/myPath';(問題のようです)

import { myPackage } from '../../../myPath';(解決すると思われる)

注:ノードモジュールを削除してnpmをインストールしようとしましたが、うまくいきませんでした。なぜこれが重要なのかはわかりません。

0
Brian

私はここから部分的にインスピレーションを得ました: https://stackoverflow.com/a/33802985/153482

また、logLevel: config.LOG_DEBUGを使用します-エラーの原因に関する適切な情報を取得するのに役立ちます `

Karma.confの次の設定を確認します。

captureTimeout: 60000,
browserNoActivityTimeout: 360000
browser: ["Firefox"]
  • captureTimeout-ブラウザの起動に時間がかかる場合があります。 LOG_DEBUGには、ブラウザのキャプチャに関連するエラーが表示されるはずです
  • browserNoActivityTimeout-PhantomJSは、FirefoxやChromeと比較して、私のマシンでは本当に遅い(x10)です。 Karmaは、テストが完了する前にタイムアウトする場合があります。
  • browser-jenkinsサーバーはLinuxで実行されます。ここではChromeのバイナリがなかったため、firefoxに切り替える必要がありました。

これら3つの設定のいずれかが正しく設定されていないと、上記のエラーが表示されます。

0
Rafael Emshoff

これを企業プロキシの背後で実行している場合に備えて。 NO_PROXY環境変数に.0.0.を必ず含めてください。

それ以外の場合、テストはまずファイアウォールを通過し、ほとんどの場合0.0.0.0に到達できません。念のため、次のものを

NO_PROXY=127.0.0.1,localhost,0.0.0.0

特に、コンテナ環境(ビルドパイプラインなど)でテストを実行している場合、環境変数が設定されていないことが、ng testがローカルマシンで正常に機能するが、コンテナ内のgoogle-chromeへの接続に失敗する一般的な理由です。

0
relief.melone