单元测试界的高富帅,Pytest框架,手把手教学,从入门到精通

前 言

pytest到目前为止还没有翻译的比较好全面的使用文档,很多英文不太好的小伙伴,在学习时看英文文档还是很吃力。本来去年就计划写pytest详细的使用文档的,由于时间关系一直搁置,直到今天才开始写。本文是第一篇,主要介绍pytest的入门使用,后续会分篇针对pytest中的各个功能出详细的使用教程。

一、准备:环境安装


pytest 是 python 中的第三方库,使用之前需要先安装,在命令行中运行以下安装命令 :


pip insatll pytest


检查安装是否成功以及安装的版本,命令行命令如下:


pytest --version


执行上述命令,能够输出版本信息,那就说明安装成功啦。


二、用例编写


当我们通过 pytest 执行用例时,pytest 会自动递归遍历执行路径下所有的目录,根据 pytest 中默认用例的识别的规则,自动收集测试用例。所有在使用 pytest 编写测试用例之前,我们首先需要了解一下 pytest 收集用例时默认的用例识别规则。

1、默认的用例识别的规则

备注:上述默认的用例查找规则,可在 pytest 的配置文件进行修改(后续章节会详细介绍配置文件的使用)

另外 pytest 兼容 unittest,以 unittest 的用例编写规范写的用例,pytest 都能够识别出来

通过了解上述 pytest 中用例识别的规则,可以知道 pytest 中用例编写,能使用函数的形式,也能使用类的形式,那么接下来就分别给大家介绍一下这两种方式编写用例。

2、函数形式编写用例

规则:用例方法名以 test 开头即可


# 	estcases	est_demo1.py


def test_demo():
    assert 100 == 100


使用命令 pytest 就可以执行测试函数,输出结果如下:


C:	estcases>pytest 
======================test session starts ======================
platform win32 -- Python 3.7.3, pytest-5.4.2, py-1.8.0, pluggy-0.13.0
rootdir: C:	estcases
plugins:  testreport-1.1.2
collected 1 item                                                           
test_demo1.py .    [100%]
====================== 1 passed in 0.26s ======================


3、以类的形式编写用例

规则:测试类命名以 Test 开头,用例方法以 test 开头


# test_demo2.py
class TestDome:


    def test_demo1(self):
        assert 11 == 11


    def test_demo(self):
        assert 22 == 21


命令 pytest 运行上述用例,结果如下:


====================== test session starts ======================
platform win32 -- Python 3.7.3, pytest-5.4.2, py-1.8.0, pluggy-0.13.0
rootdir: C:	estcases
plugins:  testreport-1.1.2
collected 2 items                                                                   
test_demo1.py .F                  [100%]
====================== FAILURES ======================
___________ TestDome.test_demo ____________
self = 
    def test_demo(self):
>       assert 22 == 21
E       assert 22 == 21
test_demo1.py:25: AssertionError
====================== short test summary info =======================
FAILED test_demo1.py::TestDome::test_demo - assert 22 == 21
====================== 1 failed, 1 passed in 0.53s ======================


上面的运行结果可以看出来,一条用例执行通过,一条执行失败


三、执行测试


在上面我们使用的是 pytest 这个命令去执行测试用例。关于 pytest 执行测试,有两种方式,一种是命令行通过 pytest 这个命令执行,另外在代码中可以通过 pytest.main() 这个方法来执行测试。接下来就和大家分别详细的介绍一下 pytest 执行测试的方式和常用的参数

1、执行参数

测试用例


# 测试用例
class TestDome:


    def test_demo1(self):
        print('----测试用例执行-----------')
        assert 11 == 11


参数 -v : 显示测试的详细参数信息


C:	estcases>pytest -s
=========================== test session starts ===========================
platform win32 -- Python 3.7.3, pytest-5.4.2, py-1.8.0, pluggy-0.13.0
rootdir: C:	estcases
plugins: testreport-1.1.2
collected 1 item     
test_demo1.py::TestDome::test_demo1 ----测试用例执行---输出1--------
----测试用例执行---输出2--------
PASSED
=========================== 1 passed in 0.28s ===========================


2、pytest.main 执行的参数传递

pytest.main 方法执行测试参数传递方式:

所以的参数放在列表中,每个参数就是列表中的一个元素


pytest.main(['-v','-s'])


详细的参数可以使用命令 pytest -h 查看


3、指定执行的测试目录

命令 pytest 测试目录路径


pytest testcase/


pytest 会执行指定目录路径下所有的测试用例


4、指定执行的测试文件

命令 pytest 测试文件路径


pytest testcase/test_demo1.py


pytest 会执行指定测试文件中下所有的测试用例


5、指定执行的测试类

命令 pytest 测试文件::测试类


pytest testcase/test_demo1.py::TestClass


pytest 会执行指定测试类里面所有的测试用例


6、指定执行的测试用例

命令 pytest 测试文件::测试类::测试方法


pytest testcase/test_demo1.py::TestClass::test_method


pytest 会执行指定的测试方法

基本的入门就给大家介绍到这里,从下一篇开始给大家详细介绍 pytest 的相关特性

下面是我当时学习时用过的部分资料,有需要的朋友可以关注并私信我关键词“测试”即可免费领取哟

单元测试界的高富帅,Pytest框架,手把手教学,从入门到精通

单元测试界的高富帅,Pytest框架,手把手教学,从入门到精通

单元测试界的高富帅,Pytest框架,手把手教学,从入门到精通

单元测试界的高富帅,Pytest框架,手把手教学,从入门到精通

展开阅读全文

页面更新:2024-04-05

标签:例规   手把手   路径   函数   开头   框架   入门   命令   规则   参数   文件   测试   方法

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top