【发布时间】:2018-12-12 18:33:38
【问题描述】:
在我的测试套件中,我有一些用于许多参数化测试的数据生成装置。其中一些测试希望这些装置在每个会话中只运行一次,而另一些则需要它们运行每个功能。例如,我可能有一个类似于:
@pytest.fixture
def get_random_person():
return random.choice(list_of_people)
和 2 个参数化测试,一个希望在每个测试条件下使用同一个人,另一个希望每次都使用一个新人。有没有办法让这个夹具有一个测试的 scope="session" 和另一个测试的 scope="function"?
【问题讨论】:
-
范围在测试执行之前进行评估,之后无法更改。有一个 open issue 提议动态范围(因此您可以将可调用对象作为范围参数传递),但尚未实现。