pytest基础知识全集

pytest基础操作01

2021-12-03  本文已影响0人  软件开发技术修炼

安装pytest
pip install -U pytest

用例设计原则:
以test_ 开头的函数
以test 开头的类,不能包含 init方法
以test_ 开头的类里面的方法
所有的包package必须有 init.py 文件

创建第一个简单的测试函数

import pytest

#定义add函数
def add(a,b):
    return a+b

class TestAdd(object):
    def test_add_int(self):
        assert add(2,3) == 5

    def test_add_str(self):
        assert add('hi','Tily') =='hiTily'

    def test_add_float(self):
        assert add(1.0,2.0)==3.0

if __name__ == '__main__':
    pytest.main('-q test_fixture.py')

关于test命名的一些规范及特殊使用

#将一个类中的多个测试分组,确保类前加上Test,否则跳过类

class TestClass:
    def test_one(self):
        x = "this"
        assert "h" in x

    def test_two(self):
        x = "hello"
        assert hasattr(x,"check")

#测试分组时,每个测试都有一个唯一的类实例,相同会报错

class TestClassDemoInstance:
    def test_one(self):
        assert 0

    def test_two(self):
        assert 0

结果:2 failed

#请求功能测试的唯一临时目录

def test_needsfile(tmpdir):
    print(tmpdir)
    assert 0

列出名字 tmpdir 在测试函数签名和 pytest 将在执行测试函数调用之前,查找并调用fixture工厂以创建资源。
在测试运行之前, pytest 创建唯一的每个测试调用临时目录

#断言——使用raises助手来断言某些代码引发异常
import pytest

def f():
    raise SystemExit(1)

def test_mytest():
    with pytest.raises(SystemExit):
        f()


上一篇下一篇

猜你喜欢

热点阅读