Google App Engine無縫地支持Python的logging
模塊。但是,當我使用nosetests --with-gae
測試我的代碼時,它會引發錯誤。nose-gae引發關於mkstemp和線程的錯誤
爲了說明這一點,如果我沒有一個import logging
聲明,我的任何應用程序腳本,我得到如下:
..
----------------------------------------------------------------------
Ran 2 tests in 0.068s
OK
但是,如果使用import logging
,我得到:
..
----------------------------------------------------------------------
Ran 2 tests in 0.067s
OK
Exception AttributeError: "'NoneType' object has no attribute 'mkstemp'" in <bound method DatastoreFileStub.__del__ of <google.appengine.api.datastore_file_stub.DatastoreFileStub object at 0x101a86750>> ignored
Exception ImportError: 'No module named threading' in <bound method local.__del__ of <_threading_local.local object at 0x103bb4520>> ignored
有什麼方法可以清理嗎?
更新
我砍死一個腳本測試之前設置一個環境變量:
export TESTING=1
nosetest --with-gae
然後在我的應用程序代碼,
import os
if not bool(os.environ.get('TESTING')):
import logging
但是,事實證明,import os
也導致nosetest
以提高相同的錯誤。
我有時會使用鼻子gae是奇怪的錯誤是無法解釋的(如[這個](http://stackoverflow.com/questions/8108130/gae-kinderror-when-getting-entities-via-listproperty )和[this](http://stackoverflow.com/questions/8966685/picklingerror-cant-pickle-class-its-not-the-same-object-as-in-gae))。我已經能夠通過更改我的代碼來解決它們,但它感覺非常不穩定和不穩定。 – 2012-02-01 04:30:44
@傑夫:這很奇怪。例如,我有一個代碼快照,吐出這些錯誤。在我的沮喪之中,我破解了代碼,有時候會移動「import」。有時候錯誤會出現,有時候不會。當我放棄並手動(不使用提交回復)帶回我的原始代碼快照時,錯誤消失:/ – Kit 2012-02-01 05:03:03
我感到你的痛苦。:) – 2012-02-01 05:14:25