pytest学习笔记01-测试用例收集规则

pytest官网:https://docs.pytest.org/en/stable/usage.html#cmdline

一、pytest 收集测试用例规则

1、收集测试用例的目录规则:

  • 1、如果没有指定路径模块参数,默认从当前目录下收集用例
  • 2、如果配置了testpath,即在配置目录中进行收集测试用例
  • 3、默认会递归所有目录,除非匹配 norecursedirs 配置的目录

2、模块收集规则:

默认在目录下收集所有test_*.py*_test.py的模块

3、类和函数的收集规则

  • 1、默认以 test 作为前缀的类外面的函数
  • 2、以 Test 为前缀且不包含__init__方法的的类里面的以test作为前缀的函数和方法

二、pytest执行方法

    - pytest命令  pytest [options] [file_or_dir] [file_or_dir] [...]
    - python 代码
        pytest.main(['-s', '-v'])  参数是一个字符串列表
    - 执行用例的顺序
        - 在模块级别采用模块名的ascii码顺序,在模块内部根据从上往下的定义顺序来执行。

-s,-v表示的意义

三、脚手架 fixture 前置后置 夹具

  1. 经典的xunit风格
    - 函数级(定义在模块中)
    - setup_function
    - teardown_function

         - 方法级(类中)
             - self.setup_method
             - self.teardown_method
         - 类级
             - 类方法
             - setup_class(cls)
             - teardown_class(cls)
         - 模块级别
             - setup_module
             - teardown_module
    
  2. unittest
    - 方法级
    self.setUp 前置
    self.tearDown后置
    - 类级
    setUpClass
    tearDownClass

  3. @pytest.fixture
    -定义
    - 通过装饰器@pytest.fixture可以定义夹具
    - 使用
    - 1. @pytest.mark.usefixtures(夹具的函数名字符串)
    - 2. 在测试函数中以夹具函数名作为参数
    - 使用这个夹具
    - 接受这个夹具返回值
    - 3. 通过yield语句实现后置
    - 作用范围 @pytest.fixture(scope='function')
    function 默认范围,函数范围,在测试完成后结束
    class 在类中最后一个测试完成后结束
    module 在模块中最后一个测试完成后结束
    package 在包中的最后一个测试完成后结束
    session 在一次会话中的最有一个测试完成后结束(整个项目)
    - 自动执行 @pytest.fixture(autouse=True)

你可能感兴趣的:(pytest学习笔记01-测试用例收集规则)