rut:一个跳过未受影响测试的 Python Test Runner

发布: (2026年2月8日 GMT+8 13:05)
2 分钟阅读
原文: Dev.to

Source: Dev.to

为什么要使用另一个测试运行器?

pytest-incremental 需要 pytest。它的插件单独使用都很棒,但将多个插件组合成一致的体验很困难——它们会相互冲突,配置变得脆弱,调试交互也很痛苦。

代码库的规模已经增长了好几个数量级,AI 辅助的工作流进一步加速了这一趋势。我们需要新的测试基础设施来跟上步伐。并行化有帮助,但快速反馈仍然是王道——跳过不需要运行的测试比加快运行速度更有效。

入门指南

pip install rut

# 运行所有测试并构建依赖图
rut

# 只运行受最近更改影响的测试
rut --changed

工作原理

rut 会分析你的导入图。如果 api.py 导入 models.py,而 models.py 又导入 utils.py,当你修改 utils.py 时,rut 知道需要运行这三个模块对应的测试。对不依赖 utils.py 的模块的测试则会被跳过。

对于结构良好的代码库,这通常意味着 增量运行时可减少 50–80 % 的测试

了解更多:

特性

  • 依赖感知的排序 – 基础测试先运行,失败更容易指向根本原因。
  • 异步支持 – 内置,无需插件。
  • --dry-run – 查看将会运行哪些测试,而不实际执行。
  • 兼容 unittest – 可直接替代 python -m unittest

试一试

pip install rut
rut

GitHub

0 浏览
Back to Blog

相关文章

阅读更多 »