用于在测试期间锁定对象。从本质上改变断言从硬编码到断言没有改变
pytest-locker的Python项目详细描述
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中的测试。在
- 项目
标签: