pytest-快速上手

2021-03-06  本文已影响0人  是立品啊

简介

pytest是Python的单元测试框架,同自带的unittest框架类似,但pytest框架使用起来更简洁,效率更高。

特点

安装

pip install pytest

简单使用

import pytest

def test_case():
    print('test case -01')
    assert 0

def some_case():   # 不会被pytest识别
    print('test case -01')
    assert 1
    
class TestCase_02:

    def test_case_01(self):
        print('test case -01')
        assert 1
    def test_case_02(self):
        print('test case -02')
        assert 1
    def aaa_case_01(self):
        print('test case -01')
        assert 0

if __name__ == '__main__':
    pytest.main(['2-简单上手.py'])
  1. pytest,可以识别将test开头的函数当做测试用例
  2. pytest.main(['demo.py']),main中的参数是列表,不建议用字符串的形式
  3. pytest也识别以Test开头的用例类,并且,类中的用例也必须是test
  4. 断言结果
    • .表示成功
    • F表示失败

setup/teardown

不同于unittest的setup和teardown只有类的形式。而pytest的setup和teardown有以下几种形式:

import pytest


def setup_module():
    print('模块级别的 setup_module')

def teardown_module():
    print('模块级别的 teardown_module')


def setup_function():
    print('在用例函数执行之前')

def teardown_function():
    print('在用例函数执行之后')

def test_login():
    print('test case test_login')
    assert 1

class TestCaseReg:
    def setup_class(self):
        print('类级别的 setup')
    def teardown_class(self):
        print('类级别的 teardown')

    def setup_method(self):
        print('类中方法级别的 setup')

    def teardown_method(self):
        print('类中方法级别的 teardown')

    def test_case_01(self):
        print('test case -01')
        assert 1
    def test_case_02(self):
        print('test case -02')
        assert 1

if __name__ == '__main__':
    pytest.main(['-s', '3-setup和teardown.py'])

pytest的配置文件

pytest脚本的几种运行方式

  1. 右键运行(不推荐)
  2. 终端执行 python demo.py 推荐
  3. 终端执行pytest,需要搭配配置文件来运行

配置文件

  1. 配置文件名称固定pytest.ini

    1. addopts,运行时的相关参数

    2. testpaths,跟unittest的TestLoader性质一样,用来存放所有的用例脚本

    3. python_files,脚本文件必须是以指定字符开头

      1. 如果你想运行scripts目录下指定的文件,你可以这样写
      python_files = test_login.py
      

      python_classes,脚本中的类名以指定字符开头

    4. python_functions,脚本中的函数名以指定字符开头

[pytest]
addopts = -s -v
testpaths = ./scripts
python_files = test_*.py
python_classes = Test*
python_functions = test_*
  1. 该配置文件必须在项目的根目录,并且与用例目录同级别
上一篇下一篇

猜你喜欢

热点阅读