01pytest命运运行
2021-04-25 本文已影响0人
阿登20
pycharm运行方式更换成pytest
-
方式一如下图
image.png
-
方式2
image.png
pytest的有点
- 自动发现用例,不像unittest需要加入测试套件suite
2.断言简单,只需要关键字assert
- 可以在pytest.ini指定测试用例的运行
4.环境管理灵活(函数级 类级 模块级 会话级)
5.丰富的插件,比如失败重运行插件 hmtl插件
- 继承allure 美轮美奂的报告
7.contest.py 共享前置后置,不想unittest只能 函数级和类级。pytest还可以模块 和会话级
pytest搜寻用例的原则
用例设计规则
1、模块:符合命名规则test_py或者test.py 以test开始的py文件或者test结尾的py文件
2、以test开头的函数名
3、以Test开头的测试类(没有init函数)当中,以test_开头的函数
4、测试文件所在的包必须要有"init.py"文件
pytest的运行方式
- pytest
- pytest -m pytest
- python代码
python,main([模块])
test_01.py
import time
def test_01():
print("------------")
assert 1==1
class TestPy:
def test_1(self):
time.sleep(1)
print(1)
assert 1==1
def test_2(self):
time.sleep(2)
print(1)
assert 1 == 2
def test_3(self):
time.sleep(3)
print(1)
assert 1 == 1
def test_0(self):
time.sleep(4)
print(0)
assert 1 == 4
1、某个目录下所有的用例
pytest
2、执行某一个 py 文件下用例
pytest 脚本名称.py
3、运行start.py 模块里面的某个函数,或者某个类,某个类里面的方法
加v和不加-v都可以,加-v的话,打印的信息更详细
pytest -v tes_t01.py::TestClass
pytest tes_t01.py::TestClass::test_1
pytest test_01.py::test_01
4.pytest - k "ClassName or 文件名" 进行过滤
5.-k 同时匹配不同的用例名称
pytest -s -k "test_01 or TestPy.test_01" test_01.py
-
pytest --durations=2 显示耗时最长的2个用例
image.png
参数用法大致如下这么多 多的不用去了解
image.png
常用断言
pytest 里面断言实际上就是 python 里面的 assert 断言方法,常用的有以下几种
assert xx :判断 xx 为真
assert not xx :判断 xx 不为真
assert a in b :判断 b 包含 a
assert a == b :判断 a 等于 b
assert a != b :判断 a 不等于 b