01pytest命运运行

2021-04-25  本文已影响0人  阿登20

pycharm运行方式更换成pytest

image.png

pytest的有点

  1. 自动发现用例,不像unittest需要加入测试套件suite

2.断言简单,只需要关键字assert

  1. 可以在pytest.ini指定测试用例的运行

4.环境管理灵活(函数级 类级 模块级 会话级)

5.丰富的插件,比如失败重运行插件 hmtl插件

  1. 继承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的运行方式

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 文件名" 进行过滤

image.png
5.-k 同时匹配不同的用例名称
pytest -s -k "test_01 or TestPy.test_01" test_01.py
  1. 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

上一篇下一篇

猜你喜欢

热点阅读