美文网首页
pytest学习笔记01-测试用例收集规则

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

作者: 失忆的蝴蝶 | 来源:发表于2021-01-15 10:16 被阅读0次

    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-测试用例收集规则

          本文链接:https://www.haomeiwen.com/subject/bpfnaktx.html