pytest重复测试插件
项目描述
pytest-repeat 是一个针对 pytest 的插件,它可以轻松地重复执行单个测试,或多个测试,特定次数。
需求
要使用 pytest-repeat,您需要以下先决条件
Python 3.7+ 或 PyPy3
pytest 4 或更高版本
安装
要安装 pytest-repeat
$ pip install pytest-repeat
重复测试
使用 --count
命令行选项指定您希望运行测试的次数
$ pytest --count=10 test_file.py
pytest 收集的每个测试都将运行 count
次。
如果您想在代码中标记测试以重复执行特定次数,可以使用 @pytest.mark.repeat(count)
装饰器
import pytest
@pytest.mark.repeat(3)
def test_repeat_decorator():
pass
如果您想覆盖默认测试执行顺序,可以使用带有以下值的 --repeat-scope
命令行选项:session
、module
、class
或 function
(默认)。它类似于 pytest fixture 的作用域。
function
(默认)作用域在执行下一个测试之前,每个测试将重复执行 count
或 repeat
次。session
作用域重复整个测试会话,即所有收集到的测试执行一次,然后再次执行所有这样的测试,依此类推。class
和 module
的行为类似于 session
,但重复的测试集是来自类或模块的测试,而不是所有收集到的测试。
重复测试直到失败
如果您正在尝试诊断间歇性故障,反复运行相同的测试直到它失败可能很有用。您可以使用 pytest 的 -x
选项与 pytest-repeat 一起使用,强制测试运行器在首次失败时停止。例如
$ pytest --count=1000 -x test_file.py
这将尝试运行 test_file.py 1000 次,但一旦发生失败就会停止。
单元测试风格测试
遗憾的是,pytest-repeat 无法与 unittest.TestCase 测试类一起使用。这些测试将始终只运行一次,无论 --count
如何,并显示警告。
资源
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。