Используя покрытие pytest, есть ли способ определить, какие тесты вызвали конкретный оператор?

#python #unit-testing #pytest #coverage.py #pytest-cov

Вопрос:

Я просматриваю отчет о покрытии html, созданный pytest-cov, и мне интересно, смогу ли я найти, какие тесты вызвали конкретную строку (какой тест охватывал конкретную строку).

Ответ №1:

Coverage.py включает функцию под названием «контексты», которую можно легко использовать для аннотирования результатов именами тестов: https://coverage.readthedocs.io/en/latest/contexts.html

Поместите это в свой файл .coveragerc:

 [run]
dynamic_context = test_function
 

Комментарии:

1. Я использовал --cov-context=test опцию для pytest, и мне пришлось добавить [html] show_contexts = True файл .coveragerc, чтобы увидеть контексты в html.