0

を拡張unittest.TestCaseし、パラメータ化に使用するテスト クラスがありnose_parameterizedます。私はnosetests -vテストを実行するために使用しています。私はノーズテストのバージョン 1.3.7 を持っています。

テストランナーに各テストの名前を出力してもらいたいです。代わりに、テストに渡されたパラメーターを出力するだけです。

これが私の実際の出力の例です:

[with sentence='Put it on the top shelf of the bookshelf'] ... ok
[with **None={'world': [<WorldObject table>, ...'basic', 'language': 'Pick cup'}] ... ERROR
[with **None={'name': 'first action', 'langua...'' ... ERROR
[with **None={'name': 'two pointing choices',...'' ... ERROR

のドキュメントの例に基づいてnose_parameterized、出力にはテスト メソッドの名前とそのクラスがほぼ次のように組み込まれているはずです。

language_analyzer_test (md.LangaugeAnalyzerTest) ... ok
language_test (md.ReferenceResolverTest) ... ERROR
reference_resolver_test (md.ReferenceResolverTest) ... ERROR
reference_resolver_test (md.ReferenceResolverTest) ... ERROR

しかし、そうではありません。

ドキュメントにはさらに次のように記載されています。

最初のパラメーターが文字列の場合、その文字列はメソッド名の末尾に追加されます。

したがって、各テストの最初のパラメーターとして渡す文字列に基づいて、出力は次のようになります。

language_analyzer_test_Pick_cup (md.LangaugeAnalyzerTest) ... ok
language_test_basic (md.ReferenceResolverTest) ... ERROR
reference_resolver_test_first_action (md.ReferenceResolverTest) ... ERROR
reference_resolver_test_two_pointing_choices (md.ReferenceResolverTest) ... ERROR

しかし悲しいかな。

実際の出力に基づいて、どのテスト メソッドが実行されているか、またはどのテスト クラスからのものであるかを判断することさえ困難です。

各テストケースのテスト名をnoseに出力させるにはどうすればよいですか?

4

1 に答える 1

1

テスト中のメソッドに docstring がある場合はnose-parameterized、パラメーター ([with …]上記の ) を docstring に追加しnose、各テストと共に docstring を出力します。

テストから docstring を削除すると、ドキュメントに示されているメソッド名を取得する必要があります。

于 2015-09-12T06:29:03.207 に答える