首先,我的英语很差,而且我是新来的。如果我做错了什么,我很抱歉。
我的问题是我是否有多个参数,但我只想为每个 test_function 调用一次 setup_method。
但是,它调用 setup 每个参数(测试用例)。我不知道如何解决这个问题。
这是我的代码:
class Test_Class:
def setup_method(self):
print("==========set up===========")
@pytest.mark.parametrize('people', ['Mike','Alice','Bob'])
@pytest.mark.parametrize('say', ['Hi','how is going on'])
def test_function(self, people, say):
print(people, say)
这是结果
==========set up===========
Mike Hi
==========set up===========
Alice Hi
==========set up===========
Bob Hi
==========set up===========
Mike how is going on
==========set up===========
Alice how is going on
==========set up===========
Bob how is going on
但我想要这样的结果:
==========set up===========
Mike Hi
Alice Hi
Bob Hi
==========set up===========
Mike how is going on
Alice how is going on
Bob how is going on
使用下一个参数调用设置函数。
任何建议都会非常有帮助
谢谢
最佳答案
我不确定您的方法是否正确,这是根本原因。
通常,使用 list 或 key:value 方法进行默认参数化就足够了,请尝试深入调查您的目标。在我看来,您需要查看 key:value 方法,例如:
>>> a = ['Mike','Alice','Bob']
>>> b = ['Hi','how is going on']
>>> c = {x:a for x in b}
>>> c
{'Hi': ['Mike', 'Alice', 'Bob'], 'how is going on': ['Mike', 'Alice', 'Bob']}
方法 -> 操作:[名称列表]
此外,您可以使用前置条件准备数据,例如在 conftest.py 中,请在此处阅读我的回答:https://stackoverflow.com/a/60430631/4361977
如果我的建议不是实际的,那么请提供真实的例子,我会尽力帮助你。
关于Pytest 多个 @pytest.mark.parametrize 与一个设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60428630/