Python 使用给定参数

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将参数化的属性,并使用所需的

我想知道是否可以使用pytest的
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()策略,那么在测试函数内部绘制是唯一的选择(虽然不美观,但效果很好)。