Tal*_*iss 43 python unit-testing pydev
有没有办法将背景单元测试与Pydev Eclipse环境集成?
我的单元测试运行良好,但我希望将它们集成到基于源文件更改的后台运行(例如使用nose)并将结果集成回Eclipse(当测试使用控制台失败时,我正在考虑大红色X和跟踪日志视图).
不,在侧面运行鼻子的命令提示符不计算在内.
我在开发RoR时已经有了这个Eclipse集成.
谢谢,
塔尔.
编辑:查看新的Pydev(1.6.4)http://pydev.org/manual_adv_pyunit.html
Fab*_*zny 35
这个功能已被添加到PyDev 2.0.1中,并且可以选择在python文件更改时在上次测试运行中重新启动测试,还有一个选项可以仅重新运行错误 - 尽管如果没有,它将运行完整的测试套件发现错误,因为这个想法是你完成了你的错误,当所有通过整个套件的最终发布完成后(然后你可以继续进行另一个任务).
目前的每晚构建都包含此功能.

Pydev确实有一些单元测试集成,但这只是一个运行配置...所以......
这不是一个非常优雅的方式,但如果你:
然后至少你会得到一些东西,在资源保存时将测试结果输出到控制台.
我刚刚意识到PyDev具有相当强大的脚本支持.不幸的是我没有时间为你做这一切(但是如果你完成这个,请在这里发布:)
如果pyedit_nose.py在其他空文件夹中创建名称如此的文件:
assert cmd is not None
assert editor is not None
if cmd == 'onSave':
    from java.lang import Runtime
    from java.io import BufferedReader
    from java.io import InputStreamReader
    from org.eclipse.core.resources import ResourcesPlugin
    from org.eclipse.core.resources import IMarker
    from org.eclipse.core.resources import IResource
    proc = Runtime.getRuntime().exec('ls -al')
    extra_message = BufferedReader(InputStreamReader(proc.inputStream)).readLine()
    r = ResourcesPlugin.getWorkspace().getRoot()
    for marker in r.findMarkers(IMarker.PROBLEM, False, IResource.DEPTH_INFINITE):
        if marker.getAttribute(IMarker.MESSAGE).startsWith("Some test failed!"):
            marker.delete()
    for rr in r.getProjects():
        marker = rr.createMarker(IMarker.PROBLEM)
        marker.setAttribute(IMarker.MESSAGE, "Some test failed! " + extra_message)
        marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH)
        marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR)
并设置Preferences-> PyDev-> Scripting Pydev指向此目录,每次保存文件时,您将获得工作区中标记为错误的所有项目.
通过执行一个脚本,以一些易于解析的格式返回测试结果而不是ls解析输出,您应该能够将标记放在正确的位置.
看一下这个起点:
resource.createMarker(IMarker.PROBLEM)创建问题标记.IResource代表项目的类型.使用该members()方法获取内容.| 归档时间: | 
 | 
| 查看次数: | 12566 次 | 
| 最近记录: |