Когда я запускаю эту команду ng test --browsers=ChromeHeadless --source-map=false --code-coverage=true --watch=true
, я отмечаю, что мои тесты возвращают следующую сводку покрытия кода:
Охват кода без исходных карт - цифры кажутся правильными.
Однако покрытие кода, как оно отображается в моем каталоге coverage/
, имеет некоторую бессмысленную подсветку. Смотрите эти примеры:
Пример 1 Без исходных карт - Подсветка кажется неправильной. (Только фрагменты строк указаны как непроверенные?)
Пример 2 Без исходных карт - Подсветка кажется неправильной. (Только фрагменты строк указаны как непроверенные?)
Теперь, когда я запускаю следующую команду, ng test --browsers=ChromeHeadless --source-map=true --code-coverage=true --watch=true
(ПРИМЕЧАНИЕ: ЕДИНСТВЕННОЕ ИЗМЕНЕНИЕ - ЗНАЧЕНИЕ КАРТЫ ИСТОЧНИКА), я получаю неверные номера покрытия кода, но выделение исправлено. Смотри ниже.
Покрытие кода с исходными картами - цифры кажутся выключенными.
Пример 1 с исходными картами - подсветка кажется правильной.
Пример 2 с исходными картами - подсветка кажется правильной.
Есть и другие отклонения, которые появляются при использовании исходных карт, например, мой набор тестов регистрирует, что он Executed 37 of 35
успешно тестирует.
Почему использование Source Maps вызывает такое большое различие в покрытии моего кода? Разве цифры и статистика не должны быть одинаковыми, использую ли я Source Maps или нет? Точно так же, не должны ли те же строки быть подсвечены одинаково, независимо от того, использую ли я Source Maps или нет?
Почему расхождение?