随机化pytest测试的运行顺序,并对随机性进行一些控制
pytest-random-order的Python项目详细描述
快速启动
安装:
$ pip install pytest-random-order
从v1.0.0开始, 默认情况下,此插件不再随机化测试。要启用随机化,必须运行 用以下方法之一进行pytest:
pytest --random-order pytest --random-order-bucket=<bucket_type> pytest --random-order-seed=<seed>
如果要始终随机化测试顺序,请配置pytest。有很多方法可以做到, 我最喜欢的方法是在项目特定的配置文件中添加 addopts= --随机顺序 在pytest选项下(通常 [pytest] 或 [tool:pytest] 部分)。
或者,您可以设置环境变量 pytest\u addopts :
export PYTEST_ADDOPTS="--random-order"
随机化模块内的测试顺序并改变 测试模块(插件的默认行为)按如下方式运行pytest:
$ pytest --random-order
要更改重新排序的范围,请使用 --random order bucket=<;bucket type>; 选项运行pytest 其中 <;bucket type>; 可以是 类 , 模块 , 包 , 全局 :
$ pytest -v --random-order-bucket=package
要禁用模块或类中测试的重新排序,请使用pytest标记符号:
pytestmark = pytest.mark.random_order(disabled=True)
按特定顺序重新运行测试:
$ pytest -v --random-order-seed=<seed>
启用随机化的所有运行报告种子,因此如果遇到特定的测试顺序 这会导致问题,您可以在测试报告中查找该值,然后使用上述命令重复运行。
platform darwin -- Python 3.5.6, pytest-3.9.1, py-1.7.0, pluggy-0.8.0 Using --random-order-bucket=module Using --random-order-seed=383013