1

私は鼻を使ってたくさんのテストケースを実行しています。各ケースの出力を別のファイルに記録し、各ケースの結果[成功/失敗]を知りたいです。残念ながら、鼻でそれを行う方法がわかりません。誰か手がかりを提供できますか?ありがとうございました

4

1 に答える 1

5

まず、これは通常とは異なる使用方法のように思われ、テスト スキームを再考する必要があることを示している可能性があります。

これに対処する方法はいくつか考えられます。最も簡単な方法は、nose でログを記録するのではなく、各テスト ログ自体を作成することです。いくつかのテストしかない場合、またはいくつかのテストの結果をログに記録するだけの場合、これは間違いなくそれを行う方法です.

より複雑で一般的なアプローチは、終了時に各テストの結果を記録するノーズ プラグインを作成することです。これを行うには、afterTest() メソッドを実装するプラグインを作成する必要があります。

from nose.plugins import Plugin
import datetime

class SeparateReports(Plugin):
  "Log the results of each test into a separate file."
  def afterTest(self, test):
    logname = test.id() + '.log'
    success = test.passed
    date = datetime.datetime.now()
    # print logname, datetime.datetime.now(), success
    with open(logname, 'a') as log:
        log.write("%s: %s\n" % (date, success))

これにより、特定のテストにちなんで名付けられたログファイルに日付スタンプが追加され、成功の場合は True、失敗の場合は False が追加されます。いくつかのメモ:

  • 出力される結果の例については、コメントアウトされた行を参照してください。
  • このプラグインは、noseで登録する必要があります。ドキュメントを参照してください
  • 登録したら、プラグインを有効にする必要があります。コマンドライン オプション--with-separatereportsを使用します(プラグイン名に基づいて自動的に生成されます)。
  • テストごとにファイルにアクセスするため、これはかなり遅くなります。開いている sqlite DB などが必要な場合があります。
于 2013-01-03T02:28:58.873 に答える