Я использую пакет покрытия метеора (версия 1.1.4) с мокко (версия 2.4.5_6) и версию метеора 1.4.4.1 в Ubuntu 14.04 LTS. Мне удалось создать очень красивые отчеты о покрытии тестами, но кажется, что с тестами на стороне клиента что-то не так. Чтобы отправить данные покрытия на localhost:3000/coverage, я создал функцию с именем sendCoverage()
, которую я импортирую в свои файлы .tests.js:
export const sendCoverage = function sendCoverage() {
Meteor.sendCoverage(function(stats,err) {console.log(stats,err);});
};
Я вызываю эту функцию после блока тестов мокко:
after (function () {
sendCoverage();
});
Теперь это создает отчеты о тестовом покрытии на моей странице localhost: 3000/coverage, но кажется, что покрытие не отображается должным образом. Например, я вижу, что некоторые операторы выполняются, но выделены красным цветом и помечены как не покрытые. Например:
Кажется, что операторы выполняются 11 и 12 раз соответственно. Однако они не помечены как охваченные, и в моих отчетах это отражено в процентах охвата утверждений.
Кто-нибудь знает, что я могу делать неправильно, и/или есть опыт работы с покрытием кода на стороне клиента и пакетом покрытия метеоров?
Спасибо!
Редактирование после решения
Кажется, теперь у меня это работает. Проценты на Codacy совпадают с процентами в моем HTML-отчете. Глядя на отчет в формате html, кажется, что цифры покрытия все-таки были правильными. Это была просто детализация, которая показывала странное поведение. Итак, вывод таков, что это сработало, но мне потребовалось второе мнение Codacy, чтобы подтвердить это мне. Мой новый подход будет заключаться в создании отчетов о покрытии lcov с помощью spacejam (см. ответ Сера ниже) и экспорте их во внешние службы, такие как Codacy, Codecov или SonarQube.
Спасибо Серут за участие!