web-dev-qa-db-ja.com

python unittestの結果が表形式で表示されます。

特定のシステムの正確性を検証するPythonicツールを書いています。各検証はPython unittest として記述され、レポートは次のようになります。

test_exclude_list_not_empty (__main__.TestRepoLists)
Assert the the exclude list is not empty ... ok
test_include_list_not_empty (__main__.TestRepoLists)
Assert the the include list is not empty ... ok
test_repo_list_not_empty (__main__.TestRepoLists)
Assert the the repo list is not empty ... ok

私の意見では、この形式は、特にPythonを使用していない人にとっては読みにくいです。ニースの表形式のレポートを生成できるレポートジェネレータはありますか。

+----------------------------------------------------------------+-----------+
| Test                                                           |  Status   |
+----------------------------------------------------------------+-----------+
| Assert the the exclude list is not empty                       |  OK       |
| Assert the the include list is not empty                       |  OK       |
| Assert the the repo list is not empty                          |  OK       |
| All the items in the include list should be in the repo list   |  OK       |
+----------------------------------------------------------------+-----------+

明確化テストスイートはリモートターミナルで実行されるため、コマンドラインレポートツールを使用します。

19
Adam Matan

これはまさにあなたが求めているものではありませんが、読み取り可能なテスト出力を得るためのいくつかのオプションがあります:

  • HTMLTestRunner は、使いやすいHTMLテストレポートを表形式で生成します。 ここ はサンプルレポートです。
  • nose-html-output プラグイン nose テストランナー
  • nittest-xml-reporting -XMLレポートのようなJUnitを使用したPyUnitベースのテストランナー
  • --with-xunitオプション付きのnoseは、読みやすく、変換しやすいjunit xmlスタイルのレポートを生成します

こちらもご覧ください:

とにかくコンソールでテスト結果を表形式で表示したい場合、 own nose plugin またはunittest.TestProgramに基づいたテストランナーを書くのが良い考えだと思います HTMLTestRunner で行われます。

お役に立てば幸いです。

29
alecxe

自分の情報をコメントとしてalecxeの回答に追加したいのですが、そのための評判が十分ではありません。

誰かがまだ答えを探している場合、HTMLTestRunnerを単純なTestRunnerに分岐しました。TestRunnerは、表形式の、色付きの、端末に優しい出力を備えています。これは出力のサンプルです:

Example

ソースコードは https://Gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067 にあります

すぐにゼロから書き直しますが、出力形式はそのままにします。

11
Vinicius Dantas

Twisted's Trial をご覧ください。

デフォルトでは、次のようなTreeReporterテストランナーを使用します。

Trial's reporting

次のものがあります。

  • これはコマンドラインレポートで、実行するだけです。

    trial test_name.py

  • カラー出力:失敗の場合は赤、成功の場合は緑

  • レポートは、構造のようなツリーを使用します。テストが属するTestCasesの下にテストが表示されるため、結果をすばやく走査して特定のテストを見つけることができます。 (ただし、さらにいくつかの reports を提供します)。

  • また、Pythonのunittest.TestCaseから派生したテストライブラリも含まれています。 twisted.trial.unittest.TestCaseをサブクラス化することにより、このライブラリを使用できます。これにより、さらにいくつかの アサーションメソッド が提供されます。

  • テストのステートメントカバレッジを生成するオプションが含まれています。

4
Carlos V