を渡しても、鼻のテストランナーショーのロギングを行います。テストは、私はユニットテストを実行するために<code>nosetests test.py</code>を使用しています
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)
テストが失敗し、それはすべてのログ情報を出力します。私はいくつかのロガーをファイラーする--logging-filter
を使用することができます。テストに合格したときに
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)
しかし、それは何も表示されません。
テストが合格すると、特定のロガーの出力が表示されます。私は-s
を使って、私が必要とするものではないstdout/stderrのテキストをすべて表示できることを発見しました。 --nologcapture
、--nocapture
、--logging-filter
などのさまざまな設定で試してみましたが、希望の効果を得ることができませんでした。
logcaptureプラグインは約250行です。あなたはおそらくサブクラス化するか、それをあなたが望むことをするために非常に簡単に適応させることができます。あなたはそれを見つけることができます[ここ](https://github.com/nose-devs/nose/blob/master/nose/plugins/logcapture.py)。 – rkrzr
@Fenikso問題の解決策を見つけましたか? – Stefan
@Stefanいいえ、それはノーズには存在していないようです。私はファイルへの書き込みなど、必要に応じていくつかの醜い回避策を使用しています。 – Fenikso