Параметризация поведения, стиль Pytest
Я смотрю тесты прогоняй себя несколько раз, но каждый с разными параметрами, немного похожим на параметры pytest https://docs.pytest.org/en/latest/reference.html
Я не могу найти ничего, что наводит на мысль, что это можно сделать за один раз. Должно ли это быть сделано извне, например, с помощью bash-скрипта, вызовы которого ведут себя несколько раз, при этом каждый прогон имеет параметры, передаваемые с использованием, например, userdata http://behave.readthedocs.io/en/latest/behave.html?highlight=userdata или есть альтернатива?
Сами фактические параметры также определяются динамически во время выполнения, выполняя все тесты через набор динамически определенных наборов параметров.
1 ответ
Практически все инструменты BDD с синтаксисом Gherkin, такие как Behave, Cucumber и т. Д., Поддерживают функцию, называемую "Схема сценария", которая должна делать то, что вы хотите. Из этих примеров здесь:
Feature: Scenario Outline (tutorial04)
Scenario Outline: Use Blender with <thing>
Given I put "<thing>" in a blender
When I switch the blender on
Then it should transform into "<other thing>"
Examples: Amphibians
| thing | other thing |
| Red Tree Frog | mush |
| apples | apple juice |
Examples: Consumer Electronics
| thing | other thing |
| iPhone | toxic waste |
| Galaxy Nexus | toxic waste |
И реализовать шаги:
@given('I put "{thing}" in a blender')
def step_given_put_thing_into_blender(context, thing):
context.blender = Blender()
context.blender.add(thing)
Довольно просто!