加速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的搜索范围,从而优化测试收集时间。
➡️