您的位置:

Pytest执行命令详解

一、pytest介绍

Pytest是Python中一个功能强大且易于使用的测试框架,支持对各种类型的软件进行测试,包括Web应用程序、API以及Python库。它是一个插件化系统,可以通过插件扩展其能力。Pytest不仅能够测试单元或集成模块,还可以测试机器学习模型等复杂系统。

二、pytest执行命令

1.基础执行命令

在当前目录下执行pytest命令即可对当前目录下的测试用例进行测试。

pytest

如果你不想输出那么多的详细信息,可以使用-c命令行选项,用来指定一个配置文件。

pytest -c pytest.ini

如果你想指定测试用例的目录,可以使用directory命令行选项。

pytest tests/

如果你想指定使用的python版本,可以使用--pyargs命令来指定,例如:

pytest --pyargs my-package

2.运行测试用例

除了基础执行命令外,还有其他的命令可以帮助我们运行测试用例。

(1)指定测试模块

使用-m参数可以指定要运行的测试模块,例如:

pytest -m smoke

上面的命令将运行所有带有smoke标记的测试用例。

(2)指定测试类和测试方法

使用-k参数可以指定要运行的测试类和测试方法,例如:

pytest -k "TestClass and test_method"

上面的命令将只运行TestClass类中名为test_method的测试方法。

(3)参数化测试

Pytest支持参数化测试,可以使用@pytest.mark.parametrize装饰器来标记参数化测试,例如:

import pytest

@pytest.mark.parametrize("a, b, expected", [
    (1, 2, 3),
    (4, 5, 9),
    (7, 8, 15)
])
def test_add(a, b, expected):
    assert a + b == expected

上面的示例中,a、b、expected参数会依次取列表中的值进行测试,测试结果会输出每个用例的执行情况。

(4)多线程测试

Pytest支持使用-xdist插件在多个进程中并发运行测试用例,从而加快测试速度。只需要通过命令行参数--numprocesses指定进程数即可,例如:

pytest -n 4

上面的命令将使用4个进程并发执行测试用例。

(5)覆盖率测试

Pytest可以使用pytest-cov插件进行覆盖率测试。首先需要安装pytest-cov,然后通过命令行参数--cov指定覆盖率测试的范围,例如:

pip install pytest-cov

pytest --cov=my_module tests/

上面的命令将测试my_module模块的覆盖率。

三、总结

Pytest是一个强大的测试框架,支持多种测试场景和方式,并且易于扩展。通过本文的介绍,希望您对Pytest执行命令有了更深入的了解。