В дополнение к ответу hoefling , другой вариант - использовать pytest-steps для выполнения инкрементного тестирования.Это может помочь вам, в частности, если вы хотите разделить какие-то инкрементные состояния / промежуточные результаты между этапами.
Однако он не реализует расширенные механизмы зависимости, такие как pytest-dependency
, поэтому используйте пакет, который лучше соответствует вашей цели.
С pytest-шагами пример hoefling напишет:
import random
from pytest_steps import test_steps, depends_on
def step_instance_start():
assert random.choice((True, False))
@depends_on(step_instance_start)
def step_instance_stop():
assert random.choice((True, False))
@depends_on(step_instance_start)
def step_instance_delete():
assert random.choice((True, False))
@test_steps(step_instance_start, step_instance_stop, step_instance_delete)
def test_suite(test_step):
# Execute the step
test_step()
РЕДАКТИРОВАТЬ: есть новый режим 'генератор', чтобы сделать его еще проще:
import random
from pytest_steps import test_steps, optional_step
@test_steps('step_instance_start', 'step_instance_stop', 'step_instance_delete')
def test_suite():
# First step (Start)
assert random.choice((True, False))
yield
# Second step (Stop)
with optional_step('step_instance_stop') as stop_step:
assert random.choice((True, False))
yield stop_step
# Third step (Delete)
with optional_step('step_instance_delete') as delete_step:
assert random.choice((True, False))
yield delete_step
Проверьте документацию для деталей.(Кстати я автор этого пакета;))