软件测试

pytest学习-fixture

2020-06-08  本文已影响0人  Lydia1991

fixture简介

fixture是在测试函数运行前后由pytest执行的外壳函数,可以定制包括定义传入测试中的数据集,配置测试前系统的初始状态、为批量测试提供数据源等等。fixture是pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的机制。
@pytest.fixture()装饰器声明函数是一个fixture,如果测试函数的参数列表中包含fixture名,那么pytest就会检测到,并在运行测试函数之前运行它,fixture可以返回数据给测试函数。其优势在于编写测试函数时可以只考虑核心测试逻辑,而不需要考虑测试前的准备工作。

fixture使用

#contentofconftest.py
importsmtplib
importpytest
@pytest.fixture(scope="module")
defsmtp_connection():
        smtp_connection=smtplib.SMTP("smtp.gmail.com",587,timeout=5)
        yieldsmtp_connection#providethefixturevalue
        print("teardownsmtp")
        smtp_connection.close()

如上所示,只需要在测试函数的参数中添加smtp_connection即可,defsmtp_connection()中的smtp_connection返回值也可以在测试函数中使用。在测试函数执行完毕后继续执行yield后面的语句。

上一篇 下一篇

猜你喜欢

热点阅读