Chrome запускает тесты дважды в карме

Когда я использую Chrome в своих тестах кармы, я часто (более 50% всех прогонов) вижу, что каждый тест выполняется дважды Chrome. Ниже вы можете найти пример вывода и мою конфигурацию.

Как я могу остановить это? В чем причина?

karma start --single-run --browsers Firefox,Chrome

INFO [karma]: Karma v0.12.17 server started at http://localhost:9876/
INFO [launcher]: Starting browser Firefox
INFO [launcher]: Starting browser Chrome

INFO [Chrome 36.0.1985 (Linux)]: Connected on socket RV8G8p63bCLQGaAJW9Hc with id 91444447
Chrome 36.0.1985 (Linux): Executed 0 of 92 SUCCESS (0 secs / 0 secs)
Chrome 36.0.1985 (Linux): Executed 1 of 92 SUCCESS (0 secs / 0.065 secs)
[...]
Chrome 36.0.1985 (Linux): Executed 91 of 92 SUCCESS (0 secs / 0.24 secs)
Chrome 36.0.1985 (Linux): Executed 92 of 92 SUCCESS (0 secs / 0.241 secs)
Chrome 36.0.1985 (Linux): Executed 92 of 92 SUCCESS (0.274 secs / 0.241 secs)
Chrome 36.0.1985 (Linux): Executed 93 of 92 SUCCESS (0.274 secs / 0.258 secs)
[...]
Chrome 36.0.1985 (Linux): Executed 183 of 92 SUCCESS (0.274 secs / 0.412 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)

INFO [Iceweasel 30.0.0 (Linux)]: Connected on socket 4DISHs7012QeIwhEW9Hd with id 93232241

Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 0 of 92 SUCCESS (0 secs / 0 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 1 of 92 SUCCESS (0 secs / 0.003 secs)
[...]
Iceweasel 30.0.0 (Linux): Executed 91 of 92 SUCCESS (0 secs / 0.201 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 92 of 92 SUCCESS (0 secs / 0.202 secs)
Chrome 36.0.1985 (Linux): Executed 184 of 92 SUCCESS (0.274 secs / 0.413 secs)
Iceweasel 30.0.0 (Linux): Executed 92 of 92 SUCCESS (0.303 secs / 0.202 secs)
TOTAL: 276 SUCCESS

Конфигурация:

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

    basePath : 'www',

    frameworks : [ 'jasmine' ],

    files : [ 'js/*' ],

    exclude : [ 'spec/lib/*.js' ],

    reporters : [ 'progress', 'junit', 'html', 'coverage' ],

    coverageReporter : {
      type : 'html',
      dir : 'coverage/'
    },

    preprocessors : {
      'js/*.js' : 'coverage',
    },

    junitReporter : {
      outputFile : 'test-results.xml'
    },

    colors : true,

    logLevel : config.LOG_INFO,

    autoWatch : true,

    browsers : [ 'Firefox', 'Chrome' ],

    captureTimeout : 20000,

    reportSlowerThan : 500,

    plugins : [ 'karma-jasmine', 'karma-coverage', 'karma-html-reporter', 'karma-chrome-launcher', 'karma-junit-reporter', 'karma-phantomjs-launcher', 'karma-firefox-launcher' ]

  });
};

Ответ 1

Я знаю, что это старый вопрос, но для меня проблема заключалась в настройке reporters в файле конфигурации кармы.

У меня было: reporters: ['progress', 'dots', 'junit']

Выполнение прогресса с точками приводило к тому, что тесты выполнялись дважды (или, скорее, показывали, что они выполняются дважды).

Таким образом, решение заключалось в том, чтобы оставить одного из этих репортеров.

Ответ 2

У вас может быть неправильная конфигурация вашей кармы. Он должен знать, где ваши тестовые файлы, но не включают их:

files : ['js/*']

может потребоваться изменить на:

files : ['js/*.js',
         { pattern: 'tests/*.js', included: false }]

(Это ожидает, что ваши исходные файлы будут находиться под ./js/, а ваши тесты будут находиться под ./tests/

(Я получил это от [https://medium.com/@SchizoDuckie/so-your-karma-tests-run-twice-this-is-what-you-need-to-do-be74ce9f257e#.m3ci0m5vb], и это сработало для меня)

Ответ 3

Для меня Chrome запускал script дважды в 50% случаях, потому что у меня не было favicon.ico. Принял мне день, чтобы узнать это:) Отображается ли ваш значок для страницы в браузере Chrome? Если нет, Chrome ищет favicon.ico, и если ваш сайт вернет 404 страницу с тем же кодом php, хром сделает это дважды.

<link rel="icon" href="/favicon.ico" sizes="32x32" type="image/png" />

Ответ 4

Вы должны включить jasmine boot.js, который запускает свой собственный набор тестовых примеров вместе с тестовыми примерами кармы

Ответ 5

Это произошло со мной, потому что у меня открылась еще одна вкладка Chrome и указывалась на сервер Karma.

Ответ 6

Это происходило со мной, потому что я не указывал браузер в моей конфигурации Run/Debug Karma. Укажите, что в разделе "Браузеры для запуска" (как показано ниже).

введите описание изображения здесь