15

失敗したアサーション値を表示することは可能ですか? トレースバックとスローされた例外の種類が表示されますが、どの値が失敗したかを知る方が実用的です。

例:

assert result.file == file
AssertionError
4

3 に答える 3

24

アサートで比較に失敗したオブジェクトの値を表示するには、nosetests -d を実行する必要があります。

于 2012-05-17T01:50:30.060 に答える
6

assert result.file == file, "%s != %s" % (result.file, file,)

そのため、素敵で短いアサートの代わりに醜いself.assert<Foo>メソッドが導入されました。メソッドは失敗メッセージを表示する方法を知っています。unittest.TestCaseself.assert<Foo>

ちなみに、鼻は黒魔術をするので、簡単な場合は

assert a == b

意味のあるエラーメッセージが表示されるはずです。

于 2010-09-01T15:35:58.097 に答える
1

別の可能性: トリックを実行する独自の関数を定義します。

def assert_eq(obt, exp):
    assert obt==exp, "\n*Expected:\n%s\n*Obtained:\n%s" % (exp, obt)

の代わりに呼び出すことができますassert:

assert_eq ( self.data['SQ'].code, "SQ" )

そして、これはこの素晴らしいエラーを返します:

アサーション エラー

于 2015-09-07T04:27:19.187 に答える