LINUX.ORG.RU

Написал тулу для уменьшения количества unit-тестов

 , ,


1

1

Как вы думаете, моя тула может быть полезна кому-то еще? Помогает найти повторяющиеся unit-тесты, на основе на одинакового покрытия кода (coverage). https://github.com/xor2003/pytest_deduplicate

Если вы автоматически сгенерировали модульные тесты на основе информации ввода / вывода функций (например, используя https://github.com/laffra/auger) то они могут повторяться. Инструмент группирует юнит-тесты на основе того какие места кода они покрывают кода.

Просто запускаете модульное тестирование с помощью этого инструмента, и он соберет покрытие кода для каждого теста и составит список наиболее вероятно повторяющихся тестов. Могут быть ложные срабатывания, например, если есть регулярные выражения, и покрытие (coverage) совпадает.



Последнее исправление: xor2003 (всего исправлений: 1)

Я правильно понимаю что для вот такой функции

def bool2str(arg: bool) -> str:
    return 'true' if arg else 'false'

вот такие тесты

assert bool2str(True) == "true"
assert bool2str(False) == "false"

оно пометит как повторяющиеся?

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Да, к сожалению на такое поругается. И тоже самое регулярки. Определяет по номеру строки и номеру строки перехода. Количество ручной работы уменьшается, но не сводится к нулю.

xor2003
() автор топика
Ответ на: комментарий от xor2003

На старых больших проектах удобно, если юнит тестов совсем нет. Генеришь тесты на основе данных и уже работаешь спокойнее с кодом. И не надо убиваться писать тесты

xor2003
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.