私は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
ありがとう!
私は同じ問題を抱えていて、提案された多くの解決策を試しましたが、最終的にそれを解決したのは、node_modulesフォルダーを削除し、npm installですべてを新しくすることでした
私のビルド環境でも同じ問題がありました。
私がしたことは、Rafael Cichockiのアドバイスに従ってデバッグを有効にすることです:
logLevel: config.LOG_DEBUG
次に、デバッグ出力で表示された行とまったく同じ行でchrome-browserを起動しようとしました。
chrome ttfフォントがないためにブラウザがクラッシュしていることが判明しました。
apt-get install ttf-freefont
私のためにその問題を解決し、カルマはクロムを起動し始めました。
このエラーが発生したとき、specファイルを変更して保存すると、再び機能するように見えました。 TypeScriptでいくつかのエラーが発生し、テストを中断しませんでした(仮想コンポーネントインスタンスコンストラクターにnull引数を渡す)。エラーが動作していたときに以前から存在していたためにエラーを解決していたのか、ファイルを変更して保存するとキャッシュが更新されたのかはわかりません。
したがって、これはChromeでキャッシュをクリアすることでも解決できる可能性があることを意味する可能性があります。
angular cliを使用したソリューションは、karma.conf.jsで以下のプロパティを設定していました
autoWatch: false,
singleRun: true
絶対パス(src/examplePath
)を相対パス(../../examplePath
)。
仕様の変更例:
import { myPackage } from 'src/myPath';
(問題のようです)
import { myPackage } from '../../../myPath';
(解決すると思われる)
注:ノードモジュールを削除してnpmをインストールしようとしましたが、うまくいきませんでした。なぜこれが重要なのかはわかりません。
私はここから部分的にインスピレーションを得ました: https://stackoverflow.com/a/33802985/153482
また、logLevel: config.LOG_DEBUG
を使用します-エラーの原因に関する適切な情報を取得するのに役立ちます `
Karma.confの次の設定を確認します。
captureTimeout: 60000,
browserNoActivityTimeout: 360000
browser: ["Firefox"]
これら3つの設定のいずれかが正しく設定されていないと、上記のエラーが表示されます。
これを企業プロキシの背後で実行している場合に備えて。 NO_PROXY環境変数に.0.0.を必ず含めてください。
それ以外の場合、テストはまずファイアウォールを通過し、ほとんどの場合0.0.0.0に到達できません。念のため、次のものを
NO_PROXY=127.0.0.1,localhost,0.0.0.0
特に、コンテナ環境(ビルドパイプラインなど)でテストを実行している場合、環境変数が設定されていないことが、ng testがローカルマシンで正常に機能するが、コンテナ内のgoogle-chromeへの接続に失敗する一般的な理由です。