Domanda

sto usando gaetestbed nel mio GAE app, e sta funzionando molto bene. Tuttavia, le dichiarazioni utili che naso le stampe quando il test non è corretto è essere lavati via dalla registrazione di 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

C'è un modo per sopprimere questo modo che io possa ottenere solo i messaggi di errore something != something else pulite?

È stato utile?

Soluzione

Ecco un modo stupido,

trova capture.py e logcapture.py nel naso / plugins /

trovare la funzione addCaptureToErr in entrambi i file, poi lo rivede. (Non so quale sia quella giusta, si prega di mettervi alla prova)

codice originale dovrebbe essere simile a questo:

def addCaptureToErr(self, ev, output):
    return '\n'.join([str(ev) , ln('>> begin captured stdout <<'),
                      output, ln('>> end captured stdout <<')])

trasformarla in

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]

Si dovrebbe lavori.

Altri suggerimenti

Non sono sicuro che questo lavoro in gaetestbed, ma usando django-naso posso aggiungere il seguente al mio settings.py:

NOSE_ARGS = ['--logging-clear-handlers', '--logging-filter=-root']

Un altro work-around è quello di grep solo inversa l'output:

./manage.py test 2>&1 | egrep -v "^(root|Level)"

Non ho provato il suggerimento di Bigbear, ma ho fatto trovare una rapida soluzione al problema:. pipe l'output err in un file

python run_nosetests.py 2> failures.tmp
gedit failures.tmp &

Questo ti permette di vedere una stampa pulita dei vostri errori nella parte superiore del file, e un'uscita minimizzato di App Engine di registrazione sotto di esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top