Есть большой проект на django. Написано некоторое количество тестов на pytest. Тесты перед стартом загружают фикстуры. И после запуска тестов некоторые фикстуры не удаляются. Как найти, в чем проблема?
Тесты гоняются на постгрес, если это важно. Python 3.6, Django 2.1.
Можно в процедуру удаления фикстуры вставить специальное лог сообщение и искать в логе. Если сообщение должно выводиться перед окончанием теста, то фильтровать на окончание теста плюс сколько-то строк сверху. LogЕxpert такое умеет делать. Или просканировать весь лог скриптом, и определить для каждого теста, было ли выведено специальное сообщение.
glader, a может отсутствует в одном из тестов, да. Как я понял описание.
Хотя да, может быть и такое что функция отрабатывает но безрезультатно. Можно в тесты вставить проверку в начале, в чистом ли состоянии система. И там где она скажет нет, значит предыдущий тест.
Это будет даже правильнее, такой подход определит не только где отсутствует teardown, но и если он не справился со своей задачей. Хотя такие ассерты, в идеале, должны быть в самом teardown - получилось ли сделать то что надо или нет.
Тестовые функции можно в декоратор обернуть чтобы не менять код тестов.