pytest-1

pytest

安装

pip install pytest

pip uninstall pytest

where pytest

pytest --help

创建新项目

在这里插入图片描述
使用虚拟环境:确保每个项目都有单独的一份运行环境
在这里插入图片描述
<备注>venv目录不要动,venv目录存放的是项目使用的库文件。

本地环境:所有项目共享一份环境

安装环境

在这里插入图片描述

File – Setting
在这里插入图片描述

搜索 pytest 进行安装
在这里插入图片描述

修改下载地址: https://pypi.tuna.tsinghua.edu.cn/simple/
在这里插入图片描述

下载完成后
在这里插入图片描述

pytest使用

test.py

函数名以test开始
使用pytest 执行的时候 会被pytest自动识别为测试用例

def test_01():
    assert 1==1
    assert 0


def test_02():
    assert  2==1, "期望结果与实际结果应该一致"

单独执行1个测试用例

pytest -v test.py::test_01

单独执行pytest 命令时,pytest会在当前目录下查找以 test_开头或者以_test结尾的py文件中的 测试用例。

跟文件或目录直接执行

pytest test.py test1.py

在这里插入图片描述

运行参数

pytest -v test.py
-v : 显示详细日志
test1.py::test_01 PASSED                                                                                                          
test1.py::test_02 FAILED     

在这里插入图片描述

-k表达式

符合表达式条件的函数都会被执行
在这里插入图片描述

or 或者 执行 test_01 或者test02

pytest -v -k "test_01 or test_02" testcases

在这里插入图片描述

pytest -v -k "test" testcases\test_1.py

在这里插入图片描述

-m 标记执行

在这里插入图片描述
执行带有 webtest 标记的所有测试函数
执行 不带有 webtest 标记的所有测试函数

pytest -v -m "webtest"
pytest -v -m "not  webtest"
–colltect-only只显示要运行的用例 但是不会去执行

常用来查阅自己设计的测试场景是否符合预期。

pytest -v -m "not webtest" --collect-only

在这里插入图片描述

-x 快速失败,当执行过程中出现第一个error或者failed 后续则不再执行
pytest -v -x testcases

在这里插入图片描述

–maxfail 最大出错次数
pytest -v --maxfail=3 testcases

在这里插入图片描述

-s 显示test 函数中print信息
pytest -v -s testcases\test_1.py::test_01

在这里插入图片描述

–lf 只显示失败的场景
pytest -v --lf testcases\test_1.py

在这里插入图片描述

-q 查看简略的报告信息
pytest -q testcases\test_1.py

在这里插入图片描述

类中定义测试方法

testcases\testclass.py

class TestA:
    """Test 命名规范 : 首字母大写"""
    def testa(self):
        assert True

    def testb(self):
        assert True


class testb:
    """Test 命名规范 : 首字母大写  小写的的话不会被自动识别"""
    def testa(self):
        assert True

    def testb(self):
        assert True

执行命令

pytest -v testcases\testclass.py

运行结果 只能自动运行 TestA中的方法

testcases/testclass.py::TestA::testa PASSED                                                                       
testcases/testclass.py::TestA::testb PASSED   

如果要运行 testb 类中的测试方法, 应该如何设置?
将testb 重命名为 Testb ,执行

pytest -v testcases\testclass.py::TestB

<备注> calss测试类一定是Test开头,大写T

-k 表达式
class TestA:
    """Test 命名规范 : 首字母大写"""
    def testa(self):
        assert True

    def testb(self):
        assert True


class Testb:
    """Test 命名规范 : 首字母大写  小写的的话不会被自动识别"""
    def testa_testb(self):
        assert True

    def testb(self):
        assert True

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值