Ich verwende PyDev für die Entwicklung und das Unit-Testing meiner Python-Anwendung. Was das Unit-Testing betrifft, so funktioniert alles prima, außer der Tatsache, dass kein Inhalt im Logging-Framework protokolliert wird. Der Logger wird nicht von der "Captured output" von PyDev erfasst.
Ich leite bereits alles, was protokolliert wird, auf diese Weise an die Standardausgabe weiter:
import sys
logger = logging.getLogger()
logger.level = logging.DEBUG
logger.addHandler(logging.StreamHandler(sys.stdout))
Dennoch zeigt die "Erfasste Ausgabe" nicht an, was in den Loggern protokolliert wird.
Hier ist ein Beispiel für ein Unittest-Skript: test.py
import sys
import unittest
import logging
logger = logging.getLogger()
logger.level = logging.DEBUG
logger.addHandler(logging.StreamHandler(sys.stdout))
class TestCase(unittest.TestCase):
def testSimpleMsg(self):
print("AA")
logging.getLogger().info("BB")
Die Konsolenausgabe lautet:
Finding files... done.
Importing test modules ... done.
testSimpleMsg (itf.lowlevel.tests.hl7.TestCase) ... AA
2011-09-19 16:48:00,755 - root - INFO - BB
BB
ok
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK
Aber die ERFASSTE LEISTUNG für den Test ist:
======================== CAPTURED OUTPUT =========================
AA
Weiß jemand, wie man alles erfassen kann, was in einer logging.Logger
während der Durchführung dieses Tests?