Python 使用给定参数
我想知道是否可以使用pytest的Python 使用给定参数,python,python-hypothesis,Python,Python Hypothesis,我想知道是否可以使用pytest的parametrize函数中的given和参数一起使用。 例如: 导入pytest 从假设导入给出 从假设导入策略为st @圣合成纤维 定义我的策略(绘制、属性): #我的策略主体 返回#某物。。。 @pytest.mark.parametize(“属性”[1,2,3]) @给定(我的策略(属性)) def test_foo(策略): 通过 在@given(my_strategy(attribute))上,我希望attribute将参数化的属性,并使用所需的
parametrize
函数中的given
和参数一起使用。例如:
导入pytest
从假设导入给出
从假设导入策略为st
@圣合成纤维
定义我的策略(绘制、属性):
#我的策略主体
返回#某物。。。
@pytest.mark.parametize(“属性”[1,2,3])
@给定(我的策略(属性))
def test_foo(策略):
通过
在@given(my_strategy(attribute))
上,我希望attribute
将参数化的属性,并使用所需的属性生成新的my_strategy
每次运行
我该怎么做呢?我能想到的一个可能的解决方法是在测试中构建策略,并使用它来绘制示例,比如
导入pytest
从假设导入给出
从假设导入策略为st
@圣合成纤维
定义我的策略(绘制、属性):
#我的策略主体
返回#某物。。。
@给定(数据=标准数据())
@pytest.mark.parametize(“属性”[1,2,3])
def test_foo(属性、数据):
策略=我的策略(属性)
示例=data.draw(策略)
... # 剩下的测试
但我认为最好的方法是编写策略,而不要将其与mark.parametrize
:
@given(st.sampled_from([1,2,3]).flatmap(my_策略))
def测试_foo(示例):
... # 剩下的测试
在这两个方面都是正确的-如果可以的话,坚持假设通常会更好,但是如果不使用data()策略,那么在测试函数内部绘制是唯一的选择(虽然不美观,但效果很好)。