Mat*_*ris 8 google-app-engine suppress nosetests suppressmessage
我在我的GAE应用程序中使用gaetestbed,它运行得很好.但是,当您的测试不正确时,鼻子打印的有用语句将被App Engine的日志记录冲走:
root: Level 9: Evaling filter expression "datastore_types.Key.from_path(u'User', 85, _app=u'tipfy') == datastore_types.Key.from_path(u'User', 87, _app=u'tipfy')"
root: Level 9: Evaling filter expression "datastore_types.Key.from_path(u'User', 87, _app=u'tipfy') == datastore_types.Key.from_path(u'User', 87, _app=u'tipfy')"
root: Level 9: Evaling filter expression "datastore_types.Key.from_path(u'User', 86, _app=u'tipfy') == datastore_types.Key.from_path(u'User', 87, _app=u'tipfy')"
root: Level 9: Evaling filter expression "datastore_types.Key.from_path(u'User', 87, _app=u'tipfy') == datastore_types.Key.from_path(u'User', 87, _app=u'tipfy')"
--------------------- >> end captured logging << ---------------------
----------------------------------------------------------------------
Ran 28 tests in 3.605s
Run Code Online (Sandbox Code Playgroud)
有没有办法抑制这个,所以我只能得到干净的something != something else
错误消息?
这里有一个愚蠢的方法,
在鼻子/插件/中找到 capture.py 和 logcapture.py
找到addCaptureToErr
两个文件中的函数,然后修改它。(不知道哪个是正确的,请自行测试)
原始代码应如下所示:
def addCaptureToErr(self, ev, output):
return '\n'.join([str(ev) , ln('>> begin captured stdout <<'),
output, ln('>> end captured stdout <<')])
Run Code Online (Sandbox Code Playgroud)
把它改成
def addCaptureToErr(self, ev, output):
check_errmsgs(output)
return '\n'.join([str(ev) , ln('>> begin captured stdout <<'),
output, ln('>> end captured stdout <<')])
def check_errmsgs(self,errmsgs):
for i in range(len(errmsgs)-1,-1,-1):
item = errmsgs[i].split(":")
if(item[2].find("Evaling filter expression")):
#find msgs you want to ignore
del errmsgs[i]
Run Code Online (Sandbox Code Playgroud)
它应该有效。
归档时间: |
|
查看次数: |
659 次 |
最近记录: |