QA|conftest使用了fixture但是没生效的原因|Pytest

发布时间 2023-06-15 16:12:42作者: T-Better

conftest.py中使用了fixture但是没生效,后面发现是因为autouse默认False导致,修改后代码如下

# conftest.py
@pytest.fixture(scope='session', autouse=True)
def cal_fixture():
    """
    开始测试前的准备:打开浏览器
    结束测试后的收尾:关闭浏览器
    """
    print('----------------------开始测试----------------------')
    calpage_obj = CalElement()
    yield
    print('----------------------结束测试----------------------')
    calpage_obj.driver.close()
  • 参数列表

    • scope:可以理解成fixture的作用域,默认:function,还有class、module、package、session四个【常用】
    • name:默认:装饰器的名称,同一模块的fixture相互调用建议写个不同的name。
    • autouse 默认:False,需要用例手动调用该fixture;手动调用方式为:用例调用时,参数写上函数名称就行;如果是True,所有作用域内的测试用例都会自动调用

参考:Pytest系列(4) - fixture的详细使用 - BigCity - 博客园 (cnblogs.com)