一、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执行命令有了更深入的了解。