如何使用 pytest-xdist 在多个进程和多个机器上并行运行测试
pytest-xdist 是一个 pytest 插件,可以在多个进程和多个机器上并行运行测试。pytest-xdist 支持的并行模式有多种,例如:进程级并行(pytest-xdist -n 4),主机级并行(pytest-xdist --dist=loadfile),分布式并行(pytest-xdist --dist=rsync),集群级并行(pytest-xdist --dist=ssh),等等。
下面演示如何使用 pytest-xdist 进行进程级并行测试。
首先,安装 pytest-xdist:
pip install pytest-xdist
假设有一个测试用例 test_example.py,其中包含一个测试函数 test_example:
def test_example(): assert "pidancode.com" == "pidancode.com"
在命令行中运行以下命令即可进行进程级并行测试:
pytest -n 4 test_example.py
其中 -n 4 表示使用 4 个进程并行运行测试。运行结果示例:
=============== test session starts =============== platform linux -- Python 3.6.9, pytest-6.2.2, py-1.10.0, pluggy-0.13.1 ... collected 1 item test_example.py::test_example[0] PASSED [ 25%] test_example.py::test_example[2] PASSED [ 50%] test_example.py::test_example[1] PASSED [ 75%] test_example.py::test_example[3] PASSED [100%] =============== 4 passed in 0.01s ===============
上面的运行结果中,test_example 函数被分别在 4 个进程中并行执行。
如果要使用字符串作为范例,可以将 test_example 函数改为:
def test_example(): assert "pidancode.com" == "皮蛋编程"
这样运行结果会提示测试失败。
相关文章