Pytest ini配置文件介绍

 

pytest.ini配置文件介绍:

  pytest.ini文件他是单元测试框架pytest单元测试框架的核心配置文件,Pytest.ini配置文件可以改变pytest一些默认的运行方式,

通过设置该配置文件,可以按照用户行为习惯进行改进执行过程,如:用例收集规则,标签,命令行参数等等。

  1)pytest.ini文件存放的位置:一般ini文件存放在项目的根目录

  2)pytest.ini文件编码格式必须为ANSI文件格式可以通过相关工具进行修改格式

  3)Pyest.ini运行规则:直接介绍了pytest的运行方式,主要分为主函数运行,以及命令行模式运行,这两种的运行模式,在执行前都会

  去读取Pytest.ini这个配置文件

 

 

Pytest主要的配置参数:

  具体配置如下,我们每一个配置进行演示

[pytest]

addopts = "-vs"
testpaths = "./case_api"
python_files = "api*.py"
python_classes = "Aaa"
python_functions = "cc"
markers =
    smoke:冒烟测试用例
    usermanage:用户管理模块测试用例

  

addopts:主要用来配置运行用例时,查看cesa的一些配置参数,我这里设置的是 "vs",那么

在执行时,就会默认加上-vs参数

示例: 这里我在执行时没有加上vs参数,他读取ini配置文件之后默认加上了vs参数,

C:\Users\admin\PycharmProjects\wuhan12>pytest  #执行用例

 

结果:

collected 6 items                                                           

case_api/api_ddt_demo03.py::Test::test01 hello word(1)
PASSED
case_api/api_ddt_demo03.py::Test::test02 SKIPPED (unconditional skip)
case_api/api_ddt_demo03.py::Test::test03 hello word(3)
PASSED
case_api/api_ddt_demo03.py::Test::test04 hello word(4)
PASSED
case_api/api_ddt_demo03.py::Test::test05 hello word(5)
PASSED
case_api/api_ddt_demo03.py::Test::test06 FAILED

================================= FAILURES =================================
_______________________________ Test.test06 ________________________________

self = <case_api.api_ddt_demo03.Test testMethod=test06>

    def test06(self):
        """ assertFalse: 当我返回的结果为False 则断言通过"""
        self.g = "123456"
>       self.assertFalse(self.g.startswith("1"), msg="断言失败")
E       AssertionError: True is not false : 断言失败

case_api\api_ddt_demo03.py:211: AssertionError
========================= short test summary info ==========================
FAILED case_api/api_ddt_demo03.py::Test::test06 - AssertionError: True is ...

================== 1 failed, 4 passed, 1 skipped in 0.60s ==================

  

testpaths:配置默认读取执行的项目路径-->这里可以看到pytest默认执行的用例的目录为./case_api目录

[pytest]
testpaths = "./case_api"


#执行结果:

C:\Users\admin\PycharmProjects\>pytest

paths: ./case_api
plugins: allure-pytest-2.9.45, forked-1.4.0, html-3.1.1, metadata-2.0.1, orde
ring-0.6, rerunfailures-10.2, xdist-2.5.0
collected 6 items

 

 

python_files :模块明的命名规则,pytest默认查找的模块是以test进行开头的这里我修改了以api开头的
模块,那么pytest就默认查找api开头的模块进行执行用例
case_api/api_ddt_demo03.py::Test::test01 hello word(1)

  

python_classes :修改pytest框架默认查找类的开头默认是查找class开头的类容,这里我改成了Aaa开头那么会
自动加载Aaa开头的类
python_functions :修改pytest框架默认查找类的开头默认是查找函数方法开头的用例,这里我改成了cc开头
那么会自动加载cc开头的用例
markers:是分组管理的功能,比如我们执行的用例会包含冒烟测试用例,那么我们想要运行冒烟测试用例怎么
办呢?这个时候就可以使用markes进行分组执行用例

示例: 我设置ini 文件smoke是冒烟测试用例,我的case1 case2都进行标记进行运行可以看到只执行了冒烟测试用例
执行语法pytest main([-m smoke])
#配置详情:
[pytest]
markers =
    smoke:冒烟测试用例


#进行用例标记
import pytest
class Test_Case:
    @pytest.mark.smoke
    @pytest.mark.run(order=5)
    def test01(self):
        print(" case 01")
    @pytest.mark.smoke
    @pytest.mark.run(order=4)
    def test02(self):
        print(" case 02")

    @pytest.mark.run(order=3)
    def test03(self):
        print(" case 03")

    @pytest.mark.run(order=2)
    def test05(self):
        print(" case 04")

    @pytest.mark.run(order=1)
    def test06(self):
        print(" case 05")

#输出结果

case_api/test_case01.py::Test_Case::test02  case 02
PASSED
case_api/test_case01.py::Test_Case::test01  case 01
PASSED

======================= 2 passed, 5 deselected in 0.57s