pytest使用简介

时间:2023-03-08 22:22:10

pytest是基于py unittest的一个单元测试框架,用起来比unittest简单不少,不过和unittest使用不太一样,总结如下:

格式:

case的py文件名必须是test开头
def用例必须是test开头
class名必须是Test开头,注意大写
class中的def用例必须是test开头

pytest提供了很多运行参数,比较常用的有:

-k:只执行指定的用例
-s:命令行显示测试代码的输出,如果需要输出html结果最好不要-s
-v:显示详细信息
-q:不显示详细信息
--html=path:输出测试结果到html

初始化,pytest提供了如下初始化和清理环境方法:

setup_function、teardown_function
setup_module、teardown_module
setup、teardown
setup_class、teardown_class
setup_method、teardown_method
@pytest.fixture()

对于class用例集类来说:

setup_function、teardown_function 不能用
setup_module、teardown_module 放在类外可以使用、放在类内不能使用,只在最前和最后调用
setup、teardown 放在类内可以使用、放在类外不能使用,每个case都会调用
setup_class、teardown_class 放在类内可以使用、放在类外不能使用,每个case都会调用
setup_method、teardown_method 放在类内可以使用、放在类外不能使用,每个case都会调用
@pytest.fixture() 放在类内类外都可以使用

对于独立def用例来说:

setup_function、teardown_function 可以使用,每个case都会调用,无需成对使用
setup_module、teardown_module 可以使用,只在最前和最后调用
setup、teardown 可以使用,每个case都会调用
setup_class、teardown_class 不能用
setup_method、teardown_method 不能用
@pytest.fixture() 可以使用