pytest_01安装与运行

一,Pytest安装

1,对应环境(如果是虚拟环境需要进入虚拟环境)输入命令: pip install -U pytest

2,验证安装成功

3,pytest文档

官方文档:https://docs.pytest.org/en/latest/contents.html

二,约束

1.  所有的单测文件名都需要满足test_*.py格式或*_test.py格式。

2.  在单测文件中,测试类以Test开头,并且不能带有 init 方法(注意:定义class时,需要以T开头,不然pytest是不会去运行该class的)

3.  在单测类中,可以包含一个或多个test_开头的函数。

4. 此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。

三,运行方式

示例:

# file_name:Test_one.py

import pytest

def func(x):

    """方法"""

    return x + 1

def test_answer():

    assert func(3) == 5 #进行断言

if __name__ =='__main__':

    pytest.main(["-s", "Test_one.py"]) #调用pytest的main函数执行测试

1,通过python代码执行pytest.main()

(1).  直接执行pytest.main() 【自动查找当前目录下,以test_开头的文件或者以_test结尾的py文件】

(2).  设置pytest的执行参数 pytest.main(['--html=./report.html','test_login.py'])【执行test_login.py文件,并生成html格式的报告】

(3).  main()括号内可传入执行参数和插件参数,通过[]进行分割,[]内的多个参数通过‘逗号,’进行分割

      a) 运行目录及子包下的所有用例  pytest.main(['目录名'])


        b)  运行指定模块所有用例  pytest.main(['Test_one.py'])


         c)  运行指定模块指定类指定用例 pytest.main(['test_reg.py::TestClass::test_method'])  冒号分割


            d)通过标记表达式运行测试


2,通过命令行执行

        a) 运行目录及子包下的所有用例 pytest 目录名

        b)  运行指定模块所有用例  pytest Test_one.py

        c)  运行指定模块指定类指定用例pytest Test_one.py::test_answer2

        d)  通过标记表达式运行测试pytest -m slow

注释:

    -m=xxx: 运行打标签的用例

    -reruns=xxx,失败重新运行

    -q: 安静模式, 不输出环境信息

    -v: 丰富信息模式, 输出更详细的用例执行信息

    -V: 可以输出用例更加详细的执行信息,比如用例所在的文件及用例名称等

    -s: 显示程序中的print/logging输出

    --resultlog=./log.txt 生成log

    --junitxml=./log.xml 生成xml报告

3,更多运行方式

a) 多进程运行cases

    需要安装pytest-xdist  输入命令:pip install -U pytest-xdist

    多进程运行命令: pytest test_se.py -n NUM


b)   执行用例名称包含某个关键字的用例 -k

   c) 当错误个数到达给定数时,退出测试--maxfail=num


d)  重试运行cases

    需要安装pytest-rerunfailures 输入命令:pip install -U pytest-rerunfailures

    运行: pytest test_se.py --reruns NUM


4,Pychram配置运行方式

(1)  进入配置页面


(2)   新增配置


(3)下次运行用该配置直接运行即可


你可能感兴趣的:(pytest_01安装与运行)