对于Python单元测试,有类似"自动测试"的东西吗?

dbr*_*dbr 43 python testing

基本上,当测试中断或通过时,咆哮通知(或其他回调).有这样的事吗?

如果没有,它应该很容易写..最简单的方法是...

  1. python-autotest myfile1.py myfile2.py etc.py
    • 检查是否已修改要监控的文件(可能只是保存了它们).
    • 在这些文件中运行任何测试.
    • 如果测试失败,但在之前的运行中它通过,则生成一个咆哮警报.与失败然后通过的测试相同.
    • 等待,然后重复步骤2-5.

我可以看到的问题是测试是否在不同的文件中.简单的解决方案是在每次保存后运行所有测试..但是测试速度较慢,这可能需要比保存之间的时间更长,和/或可能使用大量CPU功率等.

最好的方法是实际看看代码的哪些部分发生了变化,如果函数abc()发生了变化,只运行与之交互的测试..虽然这很好,但我觉得它非常复杂实行?

总结一下:

  • 是否有类似Ruby工具autotest(ZenTest包的一部分),但对于Python代码?
  • 如何检查脚本的两个修订版之间哪些功能已更改?
  • 是否可以确定命令将调用哪些函数?(有点像反向追溯)

jkp*_*jkp 27

我发现autonose非常不可靠,但嗅探器似乎工作得非常好.

$ pip install sniffer
$ cd myproject
Run Code Online (Sandbox Code Playgroud)

然后运行:而不是运行"nosetests"

$ sniffer
Run Code Online (Sandbox Code Playgroud)

或者,而不是nosetests --verbose --with-doctest,你运行:

$ sniffer -x--verbose -x--with-doctest
Run Code Online (Sandbox Code Playgroud)

自述文件中所述,最好安装一个特定于平台的文件系统监视库pyinotify,pywin32或者MacFSEvents(所有可以通过其他方式安装pip)


dbr*_*dbr 16

autonose通过创建gfxmonk:

Autonose是一个类似自动测试的工具,使用优秀的nosetest库.

autotest跟踪文件系统更改,并在添加,删除或更新文件时自动重新运行任何已更改的测试或依赖项.如果文件已被自我修改,或者文件已更改,则文件计为import已更改.

...

Autonose目前有一个OSX和GTK的原生GUI.如果这些都不可用,您可以改为运行控制台版本(使用--console选项).