自动运行Python单元测试用例

6 投票
3 回答
2338 浏览
提问于 2025-04-15 15:43

我们有一个基于Python的网页应用,还有它的单元测试用例。我们的需求是自动化运行这些单元测试用例的过程。也就是说,这些测试用例要么在每次检查后运行,要么在每隔一段固定时间后运行。我们希望用最少的精力和时间找到一个最好的工具来自动化这个过程。我们使用的是Linux操作系统和git作为版本控制工具。

3 个回答

1

你的目标是找出哪些提交导致了测试失败。这个想法真不错!

你在使用Git,所以可以考虑先了解一下githooks。这个工具可以让你创建一个叫做post-commit的脚本,在每次提交后自动运行测试。如果你想挑战一下,甚至可以设置规则,如果测试失败就拒绝用户的提交——想了解更多可以看看Pro Git书中的这一章

Alex提到的持续集成和Buildbot也是很重要的:

通过每次有变动时自动重建和测试代码,可以快速找到构建问题,避免其他开发者受到失败的影响。这样可以迅速找到出错的开发者,并进行提醒,而不需要人工干预。通过在不同的平台上运行构建,即使开发者不能在所有地方测试他们的改动,他们也能很快知道自己是否破坏了构建。警告数量、代码检查、图片大小、编译时间和其他构建参数都可以随着时间的推移进行跟踪,更加明显,因此也更容易改进。

2

Hudson 是一个不错的选择,我以前用过,效果很好。它会监控你的 git 代码库,看看有没有变化;然后运行测试并报告失败的情况。它还会记录你项目中测试的历史。Hudson 有很多 插件,可以支持 python 项目。其中,Cobertura 插件可以提供代码覆盖率报告,而与 pylint 集成的违规插件则能让你了解代码的质量。

Rhonabwy.com 上有一篇关于如何设置的好文章,标题是 设置 Python CI 服务器

3

你基本上是在寻找持续集成的工具和流程(我提到这个专业术语是因为它能帮助你更深入地研究这个主题)。buildbot是最受欢迎的Python系统,专门用于这个目的,我推荐你使用它——想了解更多可以查看这里

撰写回答