Karma Istanbul исправит работу с новой версией Chrome - PullRequest
0 голосов
/ 21 февраля 2019

В моем приложении AngularJs я использую Jasmine и Karma для своих модульных тестов.

Недавно, после обновления chrome (сейчас на 72.0.3626.81), мои модульные тесты начали давать сбой локально (без изменения кода).Я полагаю, что ошибка является результатом моего инструмента покрытия Instanbul.

Иногда ошибка выглядит следующим образом:

Ошибка была выдана послеAll Uncaught ReferenceError: __cov_iuQO6FdumXRPLjSMopb0JQ не являетсяопределено, выброшено

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

Я искал свое приложение, и единственный файл, который эта переменная __cov_ моглавозвращение функции в пакете из Стамбула, generateTrackerVar() в instrumenter.js.

Поскольку никаких изменений кода не было сделано, я предполагаю, что проблема связана с новой версией Chrome, возможно, с настройками безопасности.

Мой вопрос, какие разрешения потребует karama-охват / Стамбул?ИЛИ если кто-то подозревает, что проблема связана не с безопасностью, то что может быть причиной этой ошибки?

Спасибо

РЕДАКТИРОВАТЬ: Я попытался отключить веб-безопасность в моемgulpfile примерно так:

browsers: [ 'Chrome_without_security' ],
customLaunchers: {
    Chrome_without_security: {
        base: 'Chrome',
        flags: ['--disable-web-security']
    }
},

Но это не решило проблему.Есть ли способ установить версию Chrome в этой конфигурации?

1 Ответ

0 голосов
/ 14 марта 2019

Мне удалось решить эту проблему, выяснив хэш-код после того, как __cov_ был связан с тестовым файлом, который выдавал ошибку.Я не знаю, почему ошибка не появилась так, как обычно, это будет еще одна проблема, которую нужно решить.

На данный момент мне удалось выяснить файл, войдя в систему instrumenter.js в instanbul пакет.Затем, удалив инструмент покрытия, я выяснил источник проблемы.Простое удаление инструмента покрытия привело бы к другой ошибке, но не сообщило бы мне, какой файл, поэтому мне нужно было сделать оба.

...