警告: 以下は、tearDown 中に実際にテストにアクセスするのではなく、各結果にアクセスします。
ノーズ プラグインを作成することもできます (ここの API ドキュメントを参照してください)。あなたがおそらく興味を持っているメソッドはafterTest()
、テストの後に実行される...です。:)ただし、正確なアプリケーションによっては、handleError()
/handleFailure()
またはfinalize()
実際にはより便利な場合があります。
以下は、実行直後にテスト結果にアクセスするプラグインの例です。
from nose.plugins import Plugin
import logging
log = logging.getLogger('nose.plugins.testnamer')
class ReportResults(Plugin):
def __init__(self, *args, **kwargs):
super(ReportResults, self).__init__(*args, **kwargs)
self.passes = 0
self.failures = 0
def afterTest(self, test):
if test.passed:
self.passes += 1
else:
self.failures += 1
def finalize(self, result):
print "%d successes, %d failures" % (self.passes, self.failures)
この些細な例では、パスと失敗の数を報告するだけです (あなたが含めたリンクのようですが、もっと面白いことをするためにそれを拡張できると確信しています (ここに別の楽しいアイデアがあります)。これを使用するには、それがインストールされていることを確認してください) Nose (またはカスタム ランナーにロード) し、--with-reportresults でアクティブ化します。