【发布时间】:2008-09-20 18:07:40
【问题描述】:
基本上,当测试中断或通过时,会发出咆哮通知(或其他回调)。 这样的事情存在吗?
如果没有,它应该很容易编写.. 最简单的方法是..
- 运行
python-autotest myfile1.py myfile2.py etc.py- 检查要监控的文件是否已修改(可能只是已保存)。
- 在这些文件中运行任何测试。
- 如果测试失败,但在之前的运行中通过了,则生成咆哮警报。失败然后通过的测试也是如此。
- 等待,然后重复步骤 2-5。
我可以看到的问题是测试是否在不同的文件中。简单的解决方案是在每次保存后运行所有测试。但如果测试速度较慢,这可能需要比保存之间的时间更长的时间,和/或可能会使用大量 CPU 资源等。
最好的方法是实际查看哪些代码已更改,如果函数 abc() 已更改,则仅运行与此交互的测试。虽然这很好,但我认为它会是实现起来极其复杂?
总结一下:
- 有没有类似 Ruby 工具
autotest(ZenTest package 的一部分)的东西,但对于 Python 代码? - 如何检查脚本的两个版本之间哪些函数发生了变化?
- 是否可以确定命令将调用哪些函数? (有点像反向追溯)
【问题讨论】:
-
如果您仅运行直接引用修改后函数的测试,我认为无法正确测试。您将不会测试该函数如何与其余代码交互。例如,它可能通过了测试,但在实践中失败了,因为它的行为发生了微妙的变化