Я только что перенес набор тестов pytest с quickcheck
на hypothesis
. Это сработало довольно хорошо (и сразу же выявило некоторые скрытые ошибки крайнего случая), но одно важное различие, которое я вижу, связано с изоляцией тестов между двумя менеджерами свойств.
quickcheck
, кажется, просто запускает тестовую функцию несколько раз с разными значениями параметров, каждый раз запуская мои приборы с привязкой к функции. Это также приводит к появлению гораздо большего количества точек в выводе pytest.
hypothesis
однако, похоже, многократно запускает только тело тестовой функции, что означает, например, отсутствие откатов транзакций между отдельными запусками. Это означает, что я не могу надежно утверждать для ряда записей БД, когда мой тест вставляет что-то, например, в БД, поскольку все записи из предыдущего прогона все равно будут зависать.
Мне здесь не хватает чего-то очевидного или это ожидаемое поведение? Если да, то есть ли способ получить количество прогонов, выполненных гипотезой, в качестве переменной для использования внутри теста?