跳转到主要内容

pytest重复测试插件

项目描述

pytest-repeat 是一个针对 pytest 的插件,它可以轻松地重复执行单个测试,或多个测试,特定次数。

license python version anaconda ci issues

需求

要使用 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 命令行选项:sessionmoduleclassfunction(默认)。它类似于 pytest fixture 的作用域。

function(默认)作用域在执行下一个测试之前,每个测试将重复执行 countrepeat 次。session 作用域重复整个测试会话,即所有收集到的测试执行一次,然后再次执行所有这样的测试,依此类推。classmodule 的行为类似于 session,但重复的测试集是来自类或模块的测试,而不是所有收集到的测试。

重复测试直到失败

如果您正在尝试诊断间歇性故障,反复运行相同的测试直到它失败可能很有用。您可以使用 pytest 的 -x 选项与 pytest-repeat 一起使用,强制测试运行器在首次失败时停止。例如

$ pytest --count=1000 -x test_file.py

这将尝试运行 test_file.py 1000 次,但一旦发生失败就会停止。

单元测试风格测试

遗憾的是,pytest-repeat 无法与 unittest.TestCase 测试类一起使用。这些测试将始终只运行一次,无论 --count 如何,并显示警告。

资源

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码分发

pytest_repeat-0.9.3.tar.gz (6.3 kB 查看散列

上传时间

构建分发

pytest_repeat-0.9.3-py3-none-any.whl (4.2 kB 查看散列

上传时间 Python 3