質問

Python には、標準の xUnit スタイルのテスト フレームワークと互換性のある単体テスト フレームワークがありますか?もしそうなら、それは何ですか、どこにありますか、そしてそれは何か良いのですか?

役に立ちましたか?

解決

Python にはいくつかのテスト フレームワークがあります。 unittest, doctest, 、 そして nose. 。最も xUnit に似ているのは、 unittest, 、これは Python.org で文書化されています。

他のヒント

お勧めします .

これは単体テスト フレームワークの中で最も Python 的です。テスト ランナーは doctest と Unittest の両方を実行するため、好きなスタイルのテストを自由に使用できます。

あるよ テストオブ これはかなり完全なテストスイートです。また、xUnit-ie であり、優れたレポートオプションがあります

@グレッグ:PyUnit は標準ライブラリに含まれています unittest

考慮する py.test. 。NUnit に完全に似ているわけではありませんが、テストの自動検出や「テストとコードを監視する - 何かが変更された場合は、前回失敗したテストを再実行する」などの優れた機能を備えた非常に優れたものです。すべてのテストに合格したらすぐに、何かが変更されるたびにすべてのテストを実行するように切り替えます。」オプション。

能勢がオススメです。

合理的な簡単なインストールの後、プロジェクト フォルダーで「nosetests」を実行するだけで、Nose がすべてのテストを見つけて実行します。また、プラグインのコレクション (カバレッジ、GAE など) と、Python スクリプト内から直接 Nose を呼び出す機能も気に入っています。

もあります PyUnit それがあなたが探しているものかもしれません。

xUnit を使用したことがないので、フレームワークが比較して良いか悪いかを判断することはできませんが、 ここ これは私が書いたスクリプトで、unittest フレームワーク (API が正常に動作することを確認するため) と doctest (私が指定した例が動作することを確認するため) を使用します。

私の唯一の問題は、何かが例外を発生させたかどうかのチェックが少し複雑であることです(フレームワークの残りの部分のようにコマンド自体ではなく、例外を発生させる関数/ラムダを渡す必要があります)。それ以外は、すべきことを確実に実行し、かなり長い間デフォルトの Python ディストリビューションに含まれてきました。

ノーズは柔軟性と利便性の最良の組み合わせのようです。単体テスト、doctest、カバレッジ (拡張機能付き)、および py.test のようなテストを 1 つのフレームワークから実行し、それを見事に実行します。これは十分な人気があるため、Komodo Edit にもいくつかの IDE 統合が行われており、他の場所でも同様に見られても驚かないでしょう。

私がこの製品を気に入っているのには、次のような大きな理由があります。私はほとんどの場合、別のフレームワークでより広範なテストを作成する前に doctest を実行します。これは、基本的なテストにとって doctest は一石二鳥だからです。実行可能なテスト (うまく書くのが少し不器用な場合もありますが) だけでなく、API ドキュメントや対話型ドキュメントも同時に入手できます。コマンドライン オプション (--with-doctest) を使用すると、nose はバンドルされた doctest 拡張機能を使用してこれらを実行します。

私がこれを言うのは、私の以前のお気に入りとして py.test から来たものです。それは素晴らしいことですが、鼻の検査は私にとって類似しているので見逃すことはありません。いわば、さまざまな検査方法が 1 つ屋根の下に統合されていることが気に入っています。YMMV ですが、別のものを選ぶ前に鼻をよく見ることをお勧めします。py.test テストに慣れていない場合は、それらも参照してください。これらは通常、簡単にデバッグできるような方法で書かれているため、素晴らしいと思います。 それなし テスト フレームワークにより、デバッグ セッションに関与するシステムが 1 つ少なくなります。これだけでも非常に価値があると思いますが、私の意見では、単体テストよりも作成が簡単です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top