Ответ 1
У меня была такая же проблема и я попробовал много предлагаемых решений, которые я нашел, но окончательное решение для меня заключалось в том, чтобы удалить папку node_modules и получить все новое через npm install
Я пытался запустить свои тесты, используя 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
Имел ту же проблему с моей средой сборки.
Что я сделал, так это следовать совету Рафаэля Чихоки, чтобы включить отладку:
logLevel: config.LOG_DEBUG
Затем попытался запустить хром-браузер с точно такой же строкой, которая была видимой в его отладочном выходе.
Оказалось, что хром-браузер рушился из-за отсутствия шрифтов ttf. Итак:
apt-get install ttf-freefont
Решила, что для меня и кармы началась проблема запуска хром.
Я заметил, что когда у меня была эта ошибка, когда я изменил спецификационный файл и сохранил его, он, похоже, снова работал. У меня было несколько ошибок в typescript, которые не нарушали тесты (передавая нулевые аргументы конструктору экземпляра виртуального компонента). Я не знаю, разрешали ли они ошибки, поскольку они существовали до того, когда они работали, или если сменить файл и сохранить его, обновил кеш.
Таким образом, это может означать, что очистка кеша в Chrome может также потенциально решить проблему. Теперь он снова работает для меня, поэтому я не могу проверить его.
Решением для нас с angular cli было установить следующие свойства в karma.conf.js
autoWatch: false,
singleRun: true
Я получил свое вдохновение отчасти: fooobar.com/questions/160918/...
Также используйте logLevel: config.LOG_DEBUG
- он может помочь вам получить хорошую информацию о том, что вызывает вашу ошибку.
Проверьте следующие настройки в файле karma.conf:
captureTimeout: 60000,
browserNoActivityTimeout: 360000
browser: ["Firefox"]
Если какая-либо из этих трех настроек не была установлена правильно, мы получили бы ошибку, описанную выше.
Я смог решить эту проблему, удалив абсолютный путь (src/examplePath
) и изменив его на относительный путь (../../examplePath
).
Пример изменения в спецификации:
import { myPackage } from 'src/myPath';
(похоже проблемы)
import { myPackage } from '../../../myPath';
(кажется, чтобы решить это)
Обратите внимание, что я пытался удалить модули узла и установить npm, но это не сработало. Я так не уверен, почему это важно.
На всякий случай, если вы используете это за корпоративным прокси. Убедитесь, что вы включили свой 0.0.0.0 в переменную среды NO_PROXY.
В противном случае ваш тест сначала пройдет через брандмауэр, где он, скорее всего, не сможет достичь 0.0.0.0. Так что просто чтобы убедиться, что я включаю следующее в моем
NO_PROXY=127.0.0.1,localhost,0.0.0.0
Особенно, если вы выполняете свои тесты в среде контейнера (например, в конвейере сборки), ненастроенные переменные среды могут быть распространенной причиной нормальной работы ng test на локальном компьютере, но не удается подключиться к google-chrome в контейнере.