6

失敗したテストの単純でコンパクトなリストを取得するために失敗したテストの名前のみをノーズ出力にすることは可能ですか?

キャプチャされた stdout を破棄する方法を見つけました。

nosetests -s

ただし、失敗したアサーションは引き続き出力されます (たとえば、assertEqual は期待値と実際の値の両方を出力します)。理想的には、失敗したファイルと行を知りたいだけです。

4

1 に答える 1

1

あなたの問題に対する非常に迅速で原始的な答え:

--verbosity=2パラメータを使用する と、すべてのテストが一覧表示されます

stderr を stdout にリダイレクトすると、次のようなテキスト ファイルを取得できます (以下の例は、testsフォルダー内で実行されます)。

nosetests -s --verbosity=2 test_tasks.py > mytestresults.txt 2>&1

これにより、すべてのテストの完全なリストと、それらが成功したか失敗したかが の上部に作成されますmytestresults.txt( の上部からテストのリストを取得した後、失敗したテストのすべてのアサーション出力、トレースなどを切り取ることができますmytestresults.txt)。

以下の出力例:

test_admin_users_can_complete_tasks_that_are_not_created_by_them (tests.test_tasks.TasksTests) ... ok

test_admin_users_can_delete_tasks_that_are_not_created_by_them (tests.test_tasks.TasksTests) ... ok

test_admin_users_can_see_task_modify_links_for_all_tasks (tests.test_tasks.TasksTests) ... FAIL

test_logged_in_users_can_access_tasks_page (tests.test_tasks.TasksTests) ... FAIL

test_not_logged_in_users_cannot_access_tasks_page (tests.test_tasks.TasksTests) ... ok

test_string_representation_of_the_task_object (tests.test_tasks.TasksTests) ... ERROR

test_task_template_displays_logged_in_user_name (tests.test_tasks.TasksTests) ... FAIL

test_users_can_add_tasks (tests.test_tasks.TasksTests) ... FAIL

test_users_can_complete_tasks (tests.test_tasks.TasksTests) ... FAIL

test_users_can_delete_tasks (tests.test_tasks.TasksTests) ... FAIL

test_users_can_see_task_modify_links_for_tasks_created_by_them (tests.test_tasks.TasksTests) ... FAIL

test_users_cannot_add_tasks_when_error (tests.test_tasks.TasksTests) ... FAIL

test_users_cannot_complete_tasks_that_are_not_created_by_them (tests.test_tasks.TasksTests) ... FAIL

test_users_cannot_delete_tasks_that_are_not_created_by_them (tests.test_tasks.TasksTests) ... FAIL

test_users_cannot_see_task_modify_links_for_tasks_not_created_by_them (tests.test_tasks.TasksTests) ... ok

... stack trace, etc. will be down here (not shown for brevity) ...

編集:おっと、これを書いて保存したところ、行番号も必要であることに気付きました。トレースの詳細からこれを解析する必要があります。または、 Nose-progressive プラグイン を使用して出力を好きなようにフォーマットするという、より洗練されたアプローチがあります。

于 2016-11-18T21:41:14.700 に答える