📜  Pytest-从基本测试开始(1)

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

Pytest-从基本测试开始

Pytest是一种Python测试框架,可用于编写和运行各种Python测试,包括单元测试、功能测试和集成测试等。Pytest使用简单、灵活且易于扩展,可以方便地编写出高质量的Python测试。

安装Pytest

在使用Pytest之前,需要先安装它。可以使用pip命令来安装Pytest:

pip install pytest

安装完成后,可以使用以下命令来验证Pytest是否安装成功:

pytest --version
编写Pytest测试

编写Pytest测试非常简单。只需要创建一个测试文件,并为要测试的功能编写一个或多个测试函数即可。

测试文件的命名应该以“test_”开头,并以“.py”结尾。例如,可以创建一个名为“test_sample.py”的测试文件。

def inc(x):
    return x + 1

def test_inc():
    assert inc(3) == 4

在这个例子中,我们定义了一个名为“inc”的函数,它将传入的参数加1并返回结果。然后,我们编写了一个名为“test_inc”的测试函数,它使用assert语句来验证inc函数的输出是否正确。如果assert语句失败,则该测试将失败。

运行Pytest测试

要运行测试,只需在终端中进入测试文件所在的目录,然后执行以下命令:

pytest

如果测试运行成功,控制台将输出类似于以下内容的结果:

============================= test session starts =============================
platform win32 -- Python 3.7.4, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: C:\Users\user\Documents\pytest
collected 1 item                                                              

test_sample.py .                                                          [100%]

============================== 1 passed in 0.03s ==============================

在这个例子中,我们只有一个测试,并且它通过了。

Pytest中的Fixture

Fixture是Pytest的一个特性,它可以让你在测试函数中创建可重用的准备和清理代码。Fixture函数是一种特殊的函数,它使用@pytest.fixture装饰器来标识自己。

import pytest

@pytest.fixture
def some_data():
    data = "Hello, world!"
    return data

def test_some_data(some_data):
    assert some_data == "Hello, world!"

在这个例子中,我们定义了一个名为“some_data”的fixture,它返回一个字符串。“test_some_data”测试函数使用some_data fixture来获取数据,并验证数据是否正确。

运行带有Fixture的测试

要运行带有Fixture的测试,只需进入测试文件所在的目录,并执行以下命令:

pytest

当Pytest运行测试时,它会检测Fixture并在每个测试中自动传递它们。

总结

这是一个简单的介绍,可以帮助你开始使用Pytest。Pytest是一种强大的测试框架,可以帮助你编写高质量、可重用和易于维护的Python测试。开始编写测试和使用fixture来减少重复的工作,让你的测试更加准确和高效。