如何使用 pytest-xdist 在多个进程和多个机器上并行运行测试

2023-04-13 00:00:00 pytest 如何使用

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" == "皮蛋编程"

这样运行结果会提示测试失败。

相关文章