用于在测试期间锁定对象。从本质上改变断言从硬编码到断言没有改变

pytest-locker的Python项目详细描述


actions batchpypicodecovexample image

PyTest储物柜

测试锁可用于在测试期间“锁定”来自的数据。 这意味着不必手动指定预期输出 当数据与预期的bahaviour相对应时,将其锁定。在

为什么使用储物柜

  • 省时:无需对预期响应进行硬编码。(特别适用于数据量大的单元测试)
  • 易于验证更改:
    • 进一步分离了测试的逻辑和测试中的期望值
    • 锁定文件及其更改很容易解释。 因此,对其进行质量评价需要一种很好的质量控制方法。在

安装

运行pip install pytest-locker

使用

  • 步骤1:from pytest_locker import locker添加到 conftest.py文件
  • 步骤2:通过将其添加到方法参数(即def test_example(locker)
  • 步骤3:使用locker.lock(your_string, optional_name)锁定数据。在
  • 另外:不要忘记提交.pytest_locker/目录以进行ci/cd测试

你准备好了!在

提示

当使用锁来测试文件时,比通常更重要的是 pytest rootdir已修复。 单击link查看所有选项 (一个是在根文件夹中添加一个pytest.ini)。在

储物柜测试流程

有两种基于锁定的模式。在

  • 当允许用户输入时,即使用--capture  no-s运行pytest时

    当允许用户输入且给定数据与锁中的数据不对应时 如果应该存储新数据或测试失败,则会提示用户。在

  • 当用户输入被捕获时,这是pytest的默认行为

    如果不允许用户输入,如果预期的锁文件不存在,将自动失败 或者如果数据与锁文件中的数据不对应。在

储物柜类

您还可以使用pytest_locker.Locker(即,lockerfixture返回一个实例的类)。 直接创建fixture来锁定(非字符串)对象,而不需要将对象转换为字符串。在

示例

例如,查看https://github.com/Luttik/repr_utils中的测试。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么即使我已经给出了代码中的所有权限,该代码也没有在emulator中运行?   java Android Studio正在抛出“线程中的异常”main“javax.net.ssl.SSLException:收到致命警报:协议\版本”   java中的for循环嵌套foreach语句   java读取/src/main/resources和/webinf/classes下的文件   java无法以此格式构造JSON响应   身份验证尝试从CAS secure rest api获取响应,但从java客户端获取登录页面作为响应   如何在java中使用excel从第1列和第3列获取单元格值,并将其作为键值对放入map中   在Java程序中打开Windows虚拟键盘   java有没有递归调用findMatch的方法?   java Pig脚本/命令,用于根据多个字符串筛选文件   java最小数量应匹配,应与POST匹配   java打开/关闭声音按钮不工作   Java嵌入式数据库持久性   java在方法调用时引发异常   java文本文件被覆盖而不是保存的问题   java Hibernate sql注释