加速pytest启动

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

本文讨论了在psutil项目中使用pytest的过程,重点解决pytest启动时间较慢的问题。通过禁用插件自动加载和优化测试收集时间,作者成功将启动时间减少了约0.12秒,从而提高了开发效率。

🎯

关键要点

  • 作者在psutil项目中采用pytest,主要关注pytest的启动时间问题。
  • pytest的启动时间较慢,执行简单测试时耗时约0.427秒,而unittest仅需约0.204秒。
  • pytest的开销主要来自于导入时间,pytest会自动加载所有安装的插件。
  • 通过设置环境变量PYTEST_DISABLE_PLUGIN_AUTOLOAD,作者成功禁用了未使用的插件,启动时间减少了约40%。
  • 作者选择性地启用了必要的插件,尽管启用pytest-xdist后启动时间有所增加,但仍比初始时间快。
  • 通过在pyproject.toml中指定测试文件路径,作者进一步优化了测试收集时间,节省了约0.03秒。
  • 最终,作者通过这些优化将pytest的启动时间减少了约0.12秒,提高了开发效率。

延伸问答

如何加速pytest的启动时间?

通过禁用插件自动加载和优化测试收集时间,可以显著加速pytest的启动时间。

pytest的启动时间与unittest相比如何?

pytest的启动时间约为0.427秒,而unittest仅需约0.204秒,pytest大约慢一倍。

如何禁用pytest的插件自动加载?

可以通过设置环境变量PYTEST_DISABLE_PLUGIN_AUTOLOAD=1来禁用插件自动加载。

优化pytest启动时间的具体步骤有哪些?

具体步骤包括禁用未使用的插件、选择性启用必要插件,以及在pyproject.toml中指定测试文件路径。

pytest-xdist插件对启动时间的影响是什么?

启用pytest-xdist后,启动时间有所增加,但仍比初始时间快。

在pyproject.toml中如何优化测试收集时间?

可以在pyproject.toml中指定测试文件路径和文件名模式,以减少pytest的搜索范围,从而优化测试收集时间。

➡️

继续阅读