2017-05-12 8 views
1

私は鼻でいくつかのテストを実行していますが、正常に動作しますが、その結果、どのテストが失敗したのか、誤った値ではなかったのがわかります。例えば、私はnosetests -vを実行していると私はこれを取得:Pythonのノーズテストで間違った値が表示されることはありますか?

====================================================================== 
FAIL: tests.test_convert_to_steer 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/nose/case.py", line 197, in runTest 
    self.test(*self.arg) 
    File "/home/pi/ared/tests.py", line 7, in test_convert_to_steer 
    assert convert_to_steer(100, 100) == 100 
AssertionError 

これは失敗したテストする私に語ったが、私は今、手動で結果が何だったか確認するためにconvert_to_steer(100, 100)の結果をプリントアウトする必要があります。

誰かが私にエラーが発生した結果がどのように表示されるか知っていますか?

+0

テスト結果にエラーが発生し、テストランナーの変更が可能な場合は、 'nose'の代わりに' pytest'を使用します。 http://imgur.com/RaWZuu4の例を参照してください。 –

答えて

3

テストスイートがunittest.TestCaseの場合、self.assertEqual(convert_to_steer(100, 100), 100)を使用できます。

詳細については、the docsを参照してください。

+1

私はそれを知っていますが、私は 'ノーズ'のシンプルさを愛し、 'アサート 'だけを使っています。シンプルな 'assert'を使ってこれを見る可能性はありませんか? – kramer65

+1

'nose'は' assert'を使うこととは関係ありません。ユニットテストは、他の方法では存在しないため、これらの能力を提供する理由があります。 'assert'にメッセージを渡すことはできますが、引数については何も教えてくれません。 'assert 4 == 5、" Four is not five "を試してください。 – erip

+0

@ kramer65 - 'assert'はキーワードであり、上書きすることはできません。すべての 'assert'は、式(一連のpythonバイトコード)が真であるかどうかをチェックすることです。関数が呼び出されたこと、比較が行われたこと、戻り値が何であったかは知られていません。ほこりの上に残っている単一のオブジェクトのちょうど真実の価値は(あなたの場合、その単純な真実か偽か)決まります。 – tdelaney

関連する問題