📜  Pytest-简介(1)

📅  最后修改于: 2023-12-03 14:45:53.111000             🧑  作者: Mango

Pytest-简介

Pytest 是一个功能强大且易于使用的 Python 测试框架。它可以运行任何函数作为测试,而不仅仅是像 unittest 一样的方法。这使得写测试变得更加简单,因为您可以将测试放在与代码相同的文件中。

安装

您可以使用 pip 安装 pytest。

pip install pytest
创建测试

要创建测试,请编写以 test_ 开头的函数。Pytest 将自动查找和运行这些函数。例如,下面是一个加法函数的测试。

def add(x, y):
    return x + y

def test_add():
    assert add(2, 3) == 5
    assert add(0, 0) == 0
    assert add(-1, 1) == 0
运行测试

要运行测试,请执行以下命令。

pytest

这将运行当前目录和子目录中的所有测试。

断言

Pytest 支持许多断言,例如 assert、assert_equal、assert_in 和 assert_raises。这些断言使您能够验证代码的行为是否符合预期。

例如,assert 断言会引发 AssertionError,如果表达式为 False。以下是一个例子。

def test_add():
    assert add(2, 3) == 5
    assert add(0, 0) == 0
    assert add(-1, 1) == 0
    assert add(2, 2) == 4
    assert add(3, 3) == 6
    assert add(5, 5) == 10
    assert add(10, 10) == 20

如果运行此测试时,其中一个断言失败,Pytest 将输出类似于以下内容的错误报告。

def test_add():
 >       assert add(2, 3) == 6
E       assert 5 == 6
E        +  where 5 = add(2, 3)

test_pytest.py:5: AssertionError
参数化测试

Pytest 还支持参数化测试,这使您可以编写一个测试,然后使用多个不同的输入来运行它。以下是一个例子。

import pytest

@pytest.mark.parametrize("a,b,result",
                         [(2, 3, 5),
                          (0, 0, 0),
                          (-1, 1, 0)])
def test_add(a, b, result):
    assert add(a, b) == result
总结

Pytest 是一个优秀的 Python 测试框架。您可以轻松地编写测试,并使用多个断言和参数化测试来验证您的代码。如果你还没有使用 Pytest,现在就试试吧!