使用pytest,文件、类、函数不能随意命名,必须按照其规则进行命名,否则pytest无法识别。
-
测试文件以test_开头(以_test结尾也可)
-
测试类以Test开头,注意,Test首字母要大写
-
测试类名称后面直接跟冒号,而不能有()
-
测试类不能带有 __init__ 方法
-
测试类里的每个函数都必须有参数(self)
-
测试函数以test_开头,注意,这时首字母要小写
-
断言使用基本的assert即可
初次尝试使用pytest
先创建一个文件叫做test_study.py ,在这个文件里写一段简单的断言语句:
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
注意:文件名是以test_开头的,符合pytest规则。执行的时候,可以在pycharm的terminal里执行,也可以直接执行。
直接执行
在terminal中执行,需敲入命令python -m pytest test_study.py或者pytest test_study.py
运行测试用例的方法
pytest.main():可以在main中传入不同的指令用以执行指定目录的测试用例。
terminal命令:在pytest后面跟不同指令用以执行指定目录的测试用例。
需要注意的是:路径书写规范,命令可以叠加使用
我的整体目录构造
命令
-s: 可打印用例中的print输出内容
-v: 打印用例详细执行信息
-q: 安静模式, 不输出环境信息
-k:关键字匹配,用and区分:匹配范围(文件名、类名、函数名)
-x:遇到错误停止执行(还没尝试)
叠加使用
在pytest.main()中用法
先说一下路径的写法
# 运行./目录下所有(test_*.py 和 *_test.py)用例
运行./subpath 目录下用例
# 运行指定模块
# 运行模块中的指定用例
运行参数写法
单参数
多参数,eg:# 匹配test_2.py模块下包含haha的用例
也可以写成pytest.main(['-s','-k=haha','./subpath/test_2.py'])