📅  最后修改于: 2023-12-03 14:45:53.111000             🧑  作者: Mango
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,现在就试试吧!