Мой текущий проект Ruby on Rails выполняет тестирование через rcov (в частности, релевантность rcov , и у нас довольно высокий стандарт (мы не выполняем сборку, если охват кода <95%). </p>
Мы используем следующую команду для проверки этого:
rcov_cmd = "rcov --rails --text-summary \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
Сегодня я нашел некоторый код, который регистрирует зеленый (запущенный) в отчетах rcov. Хомевер, я могу доказать, что этот код не запускается (в начале функции возникает исключение, и мои модульные тесты проходят)
Я провел некоторое исследование и нашел флаг --xrefs для rcov, который, я думал, добавит все вызывающие абоненты для каждой строки в отчетах rcov.
Я изменил команду rcov на:
rcov_cmd = "rcov --rails --text-summary --xrefs \
--include #{included_dirs} \
--exclude #{excluded_dirs} \
--aggregate #{coverage_dir}/coverage.data \
--output #{coverage_dir} \
(обратите внимание на добавленный флаг --xrefs
).
Вместо дополнительной информации о месте звонков вместо тестового покрытия я изменяюсь с 96% до 48%.
Меняет ли --xrefs вид анализа, как rcov? (Я думал, что это просто соберет информацию о месте звонка). Чем это отличается / лучше от первой команды?
(Я видел падение покрытия модульным тестом, если есть неудачный модульный тест, и я знаю, что процент покрытия может упасть, если есть ошибка в прогоне, но это выглядит хорошо для меня)