2017-12-28 8 views
0

私が取り組んでいる特定のプログラムについては、コードを評価してunittestを実行し、テストが失敗したかどうかによってdo AまたはBPython:ユニットテストモジュールからテスト結果変数にアクセスする方法

しかし、通常self.assertEqual(...)は、どこかに保存する代わりに結果(失敗、エラー、成功)を表示するように見えるため、その結果にアクセスできません。 私は数日間unittestのモジュールをチェックしていますが、どこで魔法が起きるのか、あるいは画面を読み込まなくてもテストの結果を知るための変数があれば"エラー"または "失敗"という言葉を読んでみるとよい解決策のように聞こえません)。

+0

私が正しいとすれば、単体テスト中にASTを変更していますが、何故それを説明したいのですか? – georgexsh

+0

このシナリオでは[pytest hooks](https://docs.pytest.org/ja/latest/writing_plugins.html)が役立つと思います。 – georgexsh

+0

あなたはいわゆる「ファジング」をしようとしていますか? –

答えて

0

pdbを使用してこの問題をデバッグできます。テストでは、これらの2行を追加して実行を停止し、デバッグを開始します。

import pdb pdb.settrace()

今は良いテストの練習のためにあなたが決定論的テスト結果が欲しい、だけ時々失敗するテストは良いテストではありません。私は、ランダム関数を嘲笑し、あなたが見つけたエラーをキャプチャするデータセットを使用することをお勧めします。

+0

私はあなたの答えを理解している、あなたは私が間違ってコーディングしたテストがあると思い、エラーがどこにあるか知りたいと思う。そして、そうではありません。それは正しい、間違った、または構文的に間違っている可能性があるランダムなテストの生成者であり、間違ったテストや構文的に間違ったテストを破棄して最終的に正しいテストを取得したい。 申し訳ありませんが、私は十分に明確でない場合、私は質問を編集しました。 – Carlos

0

研究の数日後、私は[email protected]にメールを送って、私の問題の完璧な解決策を得ました。私がいただ 答え:私はあなたがトラブルになっunittestの を抱えている理由は、それをすると思われる

はそれがunittestのが 行うために書かれたもののようなものではないということです。

https://docs.python.org/3/library/unittest.html

コマンド・ライン・インターフェースが、インポートされたモジュールとしてモジュールを使用して についてあまり何も上のセクションがあります:それはケースだというヒントは、ドキュメントを 上というように私には思えます。

利回りにこのレシピをグーグルでのビット:

http://code.activestate.com/recipes/578866-python-unittest-obtain-the-results-of-all-the-test/、それはあなたに役に立つかもしれないが、私は のためにそれを保証することはできません、ライブラリのの1を置き換える関与しているようだかのように見えます

ファイル。 (ライブラリのファイルのいずれかを交換することは、私の の意見では完全に合理的である。Pythonのは、オープンソースであることのポイントはあなた自身のため にそれをハックすることができていることである。)

しかし、私はあなたが記述しているものをやっていた場合には、私はおそらく私自身の テストコードを書くだろう。 unittest (場所を変えてライブラリを変更する場合の逆の一種)から便利なものを盗むことができます。または、 の場合は、あなたのニーズが十分に単純で、 テストコードの単純なファイルで十分であることがわかります。

解決策が指摘されていない場合は、入手した内容をお知らせください。 もう少し考えてみます。

よろしく、マット・

unittestのから私のresult.pyモジュールを変更した後、私はテスト(真、偽、またはエラー)の値にアクセスすることができますよ。

ありがとう、マット。

P.S.私は自分の質問を編集したので、より明確で不必要なコードはありませんでした。

関連する問題