hammett是一个快速的python测试运行者
hammett的Python项目详细描述
Hammett是一个快速的python测试运行器,旨在与部件兼容 大多数人使用pytest(除非这与快速的目标相冲突)。 它还添加了一些特性,可以显著改善您的测试体验 如果你更充分地适应哈米特。在
哈米特快多少?在
这将取决于测试套件的速度。 哈米特不是魔术,它只是一个跑步者谁关心 表演很多。它的目标是最小的启动开销和最小的 每个测试的开销。我写了一些基准来衡量这一点 您可以在https://github.com/boxed/test-benchmarks(TL;DR 如果您的测试套件在pytest中是<;1s,那么您将看到巨大的改进,如果 几分钟或几小时,不算太多)。在
一个真实的例子是运行三、陈述性公司名称:
- pytest:~ 860毫秒
- 哈米特:~160毫秒
或iommi:
- pytest:~10秒
- 哈米特:~8秒
但即使你的测试套件又大又慢,你仍然可以得到一些大的 如果您经常只运行一个文件或一个测试,hammett的改进:
在iommi中,运行-k test_render_attrs_none
- pytest:~1.3秒
- 哈米特:~0.6秒
所有这些都是从一个完整和干净的运行。哈米特有避免这种情况的特征!在
锁定到模块的测试
在hammett中,您可以选择将您的测试文件命名为模块__测试.py(即 两个。这告诉hammett,如果更改模块,则只有 模块__测试.py需要运行。你可以把这些文件放在 tests目录或您正在测试的模块旁边。在
只运行相关的测试
Hammett跟踪哪些模块和哪些测试已更改并只运行 它需要的测试。假设您将您的测试锁定到上面这样的模块。在
如果hammett感到困惑,您可以删除.hammett db文件,它将 从头开始。在
在hammett中工作的Pytest功能
- <引用>pytest.mark
- 参数化测试
- 固定装置
- 与pytest.提升
有些插件可以工作,但是必须指定要加载它们设置.cfg公司名称:
[hammett]plugins= pytest_django
使用
第一次安装:pip install hammett
然后运行hammett:python -m hammett
希望它能运行你的整个测试套件!在
Hammett使用一些pytest插件,最著名的是pytest-django 对于一些项目。您需要指定hammett手动加载的插件 在设置.cfg不过。在
保持pytest兼容性
如果您想使用模块的hammett特定功能__测试.py-风格 测试文件,您仍然可以通过指定 项目的模块和测试文件模式,如下所示:
^{pr2}$当然还要继续导入pytest而不是hammett。在
许可证
BSD公司
- 项目
标签: