加速 tox 的两种方法

加速 tox 的两种方法

💡 原文英文,约1500词,阅读约需6分钟。
📝

内容提要

作者提到了两种加快 tox 运行速度的方法:使用 wheel 构建和安装包,使用 pytest-xdist 插件并行运行测试套件。作者还介绍了解决 pytest-cov 问题的方法,并结合这两种方法将 attrs 项目的运行时间显著减少。

🎯

关键要点

  • 作者使用 tox 来确保开源包在所有支持的 Python 版本上正常工作。
  • 加快 tox 运行速度的传统方法是使用 tox run-parallel,但在某些用户中该功能目前失效。
  • 第一种加速方法是使用 wheel 构建和安装包,替代源分发(sdist),可以显著减少运行时间。
  • 通过简单的配置,tox 可以共享构建环境,从而加快多个环境的测试速度。
  • 第二种加速方法是使用 pytest-xdist 插件并行运行测试套件,能够显著缩短测试时间。
  • 并行测试可能会导致一些问题,例如不支持同时运行使用永久数据库的测试。
  • 使用 pytest-cov 进行覆盖率测量时,需要特别处理子进程的问题。
  • coverage-enable-subprocess 包可以帮助解决 pytest-xdist 与 Coverage.py 的兼容性问题。
  • 手动添加 .pth 文件到 site-packages 也可以实现相同的功能。
  • 通过结合这两种方法,作者的 attrs 项目运行时间从 257 秒减少到 69 秒。
➡️

继续阅读