Отдельная настройка, тестирование и проверка в pytest с гипотезой в качестве контекста покрытия.Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Отдельная настройка, тестирование и проверка в pytest с гипотезой в качестве контекста покрытия.

Сообщение Гость »


В нашей базе кода есть множество модульных тестов на основе свойств. Мы хотели бы получить контекстно-аннотированное покрытие кода наших модульных тестов. Pytest может это сделать, но ему необходимо знать, какая часть является фазой «Выполнение» (также известной как «Упражнение», «Действие»), а не фазой «Настройка/организация». Как нам обозначить границу, если мы используем гипотезу?

Например, у нас есть модульный тест.

@dataclasses.dataclass класс StepDummy: """Фиктивный объект, притворяющийся объектом Step для целей ввода.""" шаг_ид: интервал = -1 @данный( n_steps=st.lists(st.integers(0, 10), min_size=0, max_size=10), n_steps_to_remove=st.integers(0, 100), ) def test_remove_first_n_steps_from_tasks(n_steps: list[int], n_steps_to_remove: int) -> Нет: """Проверьте, что команда remove_first_n_steps удаляет ровно n шагов.""" # ДОГОВАРИВАТЬСЯ задачи = [ Задача( идентификатор_задачи=м, шаги=[ cast(Step, StepDummy(i)) # Нас не волнует внутренняя часть шага для меня в диапазоне (n_steps_in_task) ], ) для m, n_steps_in_task в enumerate(n_steps) ] total_n_steps_before = sum(len(m.steps) для m в задачах) Предположим (n_steps_to_remove Нет: """Настройка для .""" n_steps = [7, 10] n_steps_to_remove = 8 задачи = [ Задача( идентификатор_задачи=м, шаги=[ cast(Step, StepDummy(i)) # Нас не волнует внутренняя часть шага для меня в диапазоне (n_steps_in_task) ], ) для m, n_steps_in_task в enumerate(n_steps) ] total_n_steps_before = sum(len(m.steps) для m в задачах) вернуть задачи, n_steps_to_remove, total_n_steps_before def test_remove_first_n_steps_from_tasks(test_remove_first_n_steps_from_tasks_setup) -> Нет: """Проверьте, что remove_first_n_steps удаляет ровно n шагов.""" ( задачи, n_steps_to_remove, всего_n_steps_before ) = test_remove_first_n_steps_from_tasks_setup # ДЕЙСТВОВАТЬ уменьшенные_задачи = удалить_первые_n_steps_from_tasks(задачи, n_steps_to_remove) # УТВЕРЖДАТЬ total_n_steps_after = sum(len(m.steps) для m в сокращенных_задачах) утверждать total_n_steps_after + n_steps_to_remove == total_n_steps_before Не очень красиво, но возможно. Как мне это сделать с помощью гипотезы? Есть ли способ установить динамический контекст покрытия pytest на setup или run вручную?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Рандомизация пользовательского обработки данных с Pytest и гипотезой
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Получение TypeError: Coroutine 'объект не поддерживает асинхронный протокол менеджера контекста Pytest Pytest
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    39 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip против @pytest.mark.xfail в Pytest
    Anonymous » » в форуме Python
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • @pytest.mark.skip vs @pytest.mark.xfail в pytest
    Anonymous » » в форуме Python
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»