для PR ?
На проекте у нас:
GitHub + Jenkins
есть анализ покрытия кода тестами при помощи Cobertura Coverage Report
но мне не понятно как настроить уведеомление о том, что новый код в PR не покрыт тестами
Для чего это нужно:
Хоти м ввести строгое соблюдение правила наличия юнит тестов для нового кода
Думаю как это можно организовать
Не силён в работе с Cobertura, но здравый смысл подсказывает, что там можно прогнать измерение coverage для конкретного файла\скоупа файлов. Соответственно: 1. Берете diff из PR. 2. Исключаете из него всё, что не является кодом или имеет аннотацию тестов. 3. Запускаете измерение coverage для этого скоупа файлов. 4. Если оно ниже ожидаемого % -> ставите лок на мерж PR. Отдельный вариант, если хотите не фиксироваться на определенный % покрытия, а не давать ему опускаться: - Сохраняете последний полный репорт покрытия со срезом по файлам в любую хранилку (хоть файлом на тачку в дженкинсе). - Проверяете, что: 1) Файл с таким именем есть в предыдущем репорте. 2.1) Если есть -> делаете сравнение покрытия. 2.2) Если нет и процент покрытия > 0 -> отмечаете как OK. UPD: Вот тут туториал дает понятную xml с exclude и ignore тэгами. А в их репозитории есть указание на существование такого аргумента как classPatternIncludeClassesRegexes.
спасибо за дельные советы!
Ну и вот пример уже готового решения, правда не уверен, что под ваш стэк оно подойдет, оно, кажется, про пайтон. https://diff-cover.readthedocs.io/en/latest/README.html
Обсуждают сегодня