テストのアサーションがパスしたときに do_something() を実行する方法が見つかりません。例えば:
def test_one(self):
self.assertEqual(1,1, "Did not match")
アサーションが失敗した場合、そのテストは「一致しませんでした」と出力しますが、この場合は失敗しないため、関数を呼び出すか、self.assertEqual() が成功したときに何かを出力しようとしています。
ありがとう
テストのアサーションがパスしたときに do_something() を実行する方法が見つかりません。例えば:
def test_one(self):
self.assertEqual(1,1, "Did not match")
アサーションが失敗した場合、そのテストは「一致しませんでした」と出力しますが、この場合は失敗しないため、関数を呼び出すか、self.assertEqual() が成功したときに何かを出力しようとしています。
ありがとう
何かが通過したときに印刷したい場合は、いくつかのオプションがあります。ただし、 Noeld の回答は使用しないでください。それが間違っているわけではありません。これを行うためのより良い方法が提供されているprint
ときに、テストを大量のメッセージで混乱させたくないというだけです。unittest
すべての単一関数の結果を出力したい場合test_
は、テスト ランナーの冗長性を設定します。これは、いくつかの方法で行うことができます。
コマンド ラインから、verboseオプションを使用します。
python -m unittest discover -v
プログラムで を呼び出して冗長引数unittest.main
を渡す
if __name__ == "__main__":
unittest.main(verbosity=2)
プログラムで TestSuite を構築し、verbosity 引数を指定して TestRunner を呼び出します。
suite = unittest.TestLoader().loadTestsFromModule(TestModuleName)
results = unittest.TextTestRunner(verbosity=2).run(suite)
テストが成功するたびに呼び出されるaddSuccessメソッドを含むTestResult オブジェクトのサブクラスを作成します。
その後、この TestResult オブジェクトをテスト スイートの run メソッドに渡すことができます。
suite = unittest.TestLoader().loadTestsFromModule(TestModuleName)
suite.run(myTestResult)
Twisted's Trialをご覧ください。役に立つかもしれない多くの異なるテストランナーが含まれています。デフォルトでは、TreeReporter
次のように実行されます。