Python单元测试是否有类似'autotest'的工具?
基本上,就是当测试失败或通过时,发出提醒通知(或者其他回调)。 有没有类似的东西呢?
如果没有,这个功能应该很容易写出来。最简单的方法是……
- 运行
python-autotest myfile1.py myfile2.py etc.py
- 检查要监控的文件是否被修改过(可能只要检查是否被保存过)。
- 运行这些文件中的所有测试。
- 如果某个测试失败了,但上一次运行时通过了,就生成一个提醒。测试如果从失败变为通过也是一样。
- 等待,然后重复步骤2到5。
我能想到的问题是,如果测试在不同的文件中。简单的解决办法是每次保存后都运行所有测试……但如果测试比较慢,这可能会花费比保存之间的时间还要长,或者会消耗很多CPU资源等等。
最好的办法是实际查看哪些代码发生了变化,如果函数abc()有变化,就只运行与这个函数相关的测试……虽然这样很好,但我觉得实现起来会非常复杂?
总结一下:
- 有没有类似于Ruby工具
autotest
(属于 ZenTest包)的东西,但适用于Python代码? - 如何检查脚本的两个版本之间哪些函数发生了变化?
- 有没有办法确定一个命令会调用哪些函数?(有点像反向追踪)
11 个回答
3
我刚发现这个网站:http://www.metareal.org/p/modipyd/
我现在在用thumb.py,但随着我的项目从小型项目变成中型项目,我开始寻找一些能更全面分析依赖关系的工具。经过一些调整,我很快就把modipyd搞定了。