passiere ich nosetests test.py
bin mit Unit-Tests auszuführen:Machen Nase Test Runner show logging auch wenn Tests
import unittest
import logging
class Test(unittest.TestCase):
def test_pass(self):
logging.getLogger('do_not_want').info('HIDE THIS')
logging.getLogger('test').info('TEST PASS')
self.assertEqual(True, True)
def test_fail(self):
logging.getLogger('do_not_want').info('HIDE THIS')
logging.getLogger('test').info('TEST FAIL')
self.assertEqual(True, False)
Wenn der Test fehlschlägt, druckt er die Protokollierung Info aus. Ich kann --logging-filter
verwenden nur einige Logger Filer aus:
nosetests test.py --verbosity=2 --logging-filter=test
test_fail (test.Test) ... FAIL
test_pass (test.Test) ... ok
======================================================================
FAIL: test_fail (test.Test)
----------------------------------------------------------------------
Traceback (most recent call last):
File ".../test.py", line 14, in test_fail
self.assertEqual(True, False)
AssertionError: True != False
-------------------- >> begin captured logging << --------------------
test: INFO: TEST FAIL
--------------------- >> end captured logging << ---------------------
----------------------------------------------------------------------
Ran 2 tests in 0.001s
FAILED (failures=1)
Allerdings ist es nicht etwas zeigen, wenn Tests bestehen.
Ich möchte die Ausgabe eines bestimmten Loggers sehen, wenn Tests bestanden werden. Ich habe gefunden, dass ich -s
verwenden kann, um allen stdout/stderr Text zu zeigen, der nicht genau ist, was ich brauche - es druckt alles. Ich habe versucht, mit verschiedenen Einstellungen wie --nologcapture
, --nocapture
oder --logging-filter
zu spielen, aber ich konnte den gewünschten Effekt nicht erzielen.
Das Logcapture-Plugin ist nur ~ 250 Zeilen. Sie können es wahrscheinlich leicht unterklassieren oder anpassen, um das zu tun, was Sie wollen. Sie finden es [hier] (https://github.com/nose-devs/nose/blob/master/nose/plugins/logcapture.py). – rkrzr
@Fenikso Haben Sie eine Lösung für das Problem gefunden? – Stefan
@Stefan Nein, es scheint nicht in Nase zu existieren. Ich benutze ein paar hässliche Workarounds, wenn nötig, zum Beispiel das Schreiben in eine Datei. – Fenikso