欢迎访问宙启技术站
智能推送

如何使用Pytest测试框架

发布时间:2023-05-17 11:21:45

Pytest是一种流行的Python测试框架,它可以简单地编写并发运行测试,并提供了丰富的插件和机制来扩展和自定义测试用例。本文将介绍如何使用Pytest编写测试用例、执行测试并查看测试结果的详细步骤。

1. 安装Pytest

首先,你需要安装Pytest。可以通过pip安装最新版本的Pytest:

pip install pytest

2. 编写测试用例

接下来,我们需要编写测试用例。在Pytest中,测试用例是测试模块中以“test_”开头的函数。例如:

def test_addition():
    assert 2 + 2 == 4

这个简单的测试用例测试了2 + 2的结果是否等于4。如果等于,则测试通过;否则,测试失败。

另一个示例,测试一个函数的返回值是否正确:

def test_function():
    assert my_function(3) == 6

这个测试用例假设有一个函数my_function,它接收一个整数参数,并返回该参数的两倍。如果该函数返回3的两倍6,则测试通过;否则,测试失败。

3. 运行测试用例

编写了测试用例后,我们需要执行它们。在终端中,使用以下命令来执行测试:

pytest

这将在当前目录及其子目录中查找测试用例,并执行它们。在终端中,你将看到测试结果的输出。输出将告诉你有多少个测试用例通过、失败或跳过。

例如:

$ pytest
============================= test session starts ==============================
platform darwin -- Python 3.8.10, pytest-6.2.2, py-1.10.0, pluggy-0.13.1
rootdir: /Users/myuser/pytest-example
collected 2 items                                                             

tests/test_math.py ..                                                     [100%]

============================== 2 passed in 0.02s ===============================

在这个例子中,我们有两个测试用例,都通过了测试。

4. 结合插件

Pytest提供了许多有用的插件,可以扩展和定制测试用例。其中一些插件包括:

- pytest-cov:计算测试覆盖率;

- pytest-xdist:支持并发运行测试;

- pytest-mock:提供了方便的测试模拟;

- pytest-html:生成HTML测试报告。

要结合这些插件,你需要先安装它们。可以通过pip安装这些插件并确保在代码中导入它们。

安装pytest-html插件:

pip install pytest-html

导入pytest-html插件:

import pytest_html

接下来,我们将使用pytest-html插件为我们的测试生成HTML报告。

在终端中运行以下命令:

pytest --html=report.html

这将使用pytest-html插件生成HTML测试报告,并保存到名为report.html的文件中。

5. 查看测试结果

现在,我们已经编写、运行并生成了测试报告,我们需要查看测试结果。你可以从终端或从生成的HTML报告中查看结果。

在终端中查看结果:

$ pytest --verbose

Pytest将显示详细的测试运行过程,并告诉你有多少个测试用例通过、失败或跳过。

在HTML报告中查看结果:

打开report.html文件,你将看到类似于以下内容的测试报告:

![pytest-report](https://user-images.githubusercontent.com/22481045/72244635-f7e9d400-3609-11ea-99f6-2b6e591cbd70.png)

这个报告告诉我们,我们有两个测试用例,都通过了测试。它还提供了有关测试运行时间、覆盖率和详细的测试结果的信息。

这就是使用Pytest测试框架的基本步骤,你可以根据需要扩展和自定义测试用例或插件,从而运行更加复杂和有用的测试。