考虑下面的伪代码来演示我的问题:
import pytest
@pytest.fixture
def param1():
# return smth
yield "wilma"
@pytest.fixture
def param2():
# return smth
yield "fred"
@pytest.fixture
def bar(param1, param2):
#do smth
return [Bar(param1, param2), Bar(param1, param2)]
@pytest.fixture
def first_bar(bar):
return bar[0]
class Test_first_bar:
# FIXME: how do I do that?
#def setup_smth???(self, first_bar):
# self.bar = first_bar
def test_first_bar_has_wilma(self):
# some meaningful check number 1
assert self.bar.wilma == "wilma"
def test_first_bar_some_other_check(self):
# some meaningful check number 2
assert self.bar.fred == "fred"
基本上,我想将first_bar
fixture传递给我的Test_first_bar
类,以便在其所有测试方法中重用该对象。我该如何着手处理这种情况?在
Python3,如果这很重要的话。在
在这里,您可以将fixture定义为
autouse
。你的类的所有测试都会自动调用它。在这里,我不明白什么是[Bar(param1, param2), Bar(param1, param2)]
。好吧,这不是重点,如果其余代码运行良好,那么您可以尝试下面的解决方案。我已经用静态变量替换了代码,以验证它是否正常工作,并且在我的工作环境中运行良好。在如果不想将fixture设为
^{pr2}$autouse
,那么可以在测试之前调用它。就像相关问题 更多 >
编程相关推荐