pytest AttributeError 使用带有产量的夹具时 [英] pytest AttributeError when using fixture with yield

查看:43
本文介绍了pytest AttributeError 使用带有产量的夹具时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用具有产量的 pytest 固定装置.但是在尝试获取 yield 返回的值时收到 AttributeError

I am using pytest fixture with yield. But receive AttributeError when trying to get value that yield returns

conftest.py

conftest.py

@pytest.fixture()
def driver_setup():
    driver = webdriver.Firefox()
    yield driver
    driver.quit()

basetest.py

basetest.py

@pytest.mark.usefixtures("driver_setup")
class BaseTest:
    pass

test_example.py

test_example.py

class TestExample(BaseTest):

    def test_example(self):
        self.driver.get(url)
        pass

输出:AttributeError: 'TestExample' 对象没有属性 'driver'

推荐答案

如果你想在测试中访问 driver,你需要更新 driver_setup 夹具如下.>

You need to update driver_setup fixture as below if you want access to driver in tests.

@pytest.fixture()
def driver_setup(request):
    driver = webdriver
    request.cls.driver = driver
    yield
    driver.quit()

更多详情请参考http://computableverse.com/blog/pytest-共享类夹具.

这篇关于pytest AttributeError 使用带有产量的夹具时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆