207 похожих чатов

Коллеги, поделитесь практиками/идеями о проверке наличия и прохождения unit tests

для PR ?
На проекте у нас:
GitHub + Jenkins
есть анализ покрытия кода тестами при помощи Cobertura Coverage Report
но мне не понятно как настроить уведеомление о том, что новый код в PR не покрыт тестами

Для чего это нужно:
Хоти м ввести строгое соблюдение правила наличия юнит тестов для нового кода

Думаю как это можно организовать

3 ответов

7 просмотров

Не силён в работе с Cobertura, но здравый смысл подсказывает, что там можно прогнать измерение coverage для конкретного файла\скоупа файлов. Соответственно: 1. Берете diff из PR. 2. Исключаете из него всё, что не является кодом или имеет аннотацию тестов. 3. Запускаете измерение coverage для этого скоупа файлов. 4. Если оно ниже ожидаемого % -> ставите лок на мерж PR. Отдельный вариант, если хотите не фиксироваться на определенный % покрытия, а не давать ему опускаться: - Сохраняете последний полный репорт покрытия со срезом по файлам в любую хранилку (хоть файлом на тачку в дженкинсе). - Проверяете, что: 1) Файл с таким именем есть в предыдущем репорте. 2.1) Если есть -> делаете сравнение покрытия. 2.2) Если нет и процент покрытия > 0 -> отмечаете как OK. UPD: Вот тут туториал дает понятную xml с exclude и ignore тэгами. А в их репозитории есть указание на существование такого аргумента как classPatternIncludeClassesRegexes.

Sergey-Martynov Автор вопроса
Sergey Martynov
спасибо за дельные советы!

Ну и вот пример уже готового решения, правда не уверен, что под ваш стэк оно подойдет, оно, кажется, про пайтон. https://diff-cover.readthedocs.io/en/latest/README.html

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта