6

Noseはテストジェネレーターをサポートしています。しかし、ドキュメントには次のように書かれています:

unittest.TestCase サブクラスではメソッド ジェネレータがサポートされていないことに注意してください。

これは、すべてのテスト ジェネレーターがフレームワークの外にある必要があることを意味しますunittest

質問:unittest可能な限り、これらのテストにフレームワークを引き続き使用する必要がありますか? それとも、一貫性の理由から、unittest完全に放棄する必要がありますか?

noseそして、なぜ内のテスト ジェネレーターをサポートしないのunittest.TestCaseですか? それは の最大の利点を破壊しているように見えnoseます: それはの代替ではなく拡張であり、したがって が提供する機能を一切奪うことなく追加の利点を提供します。または、何か不足していますか?unittestunittest

そして関連する質問です。完全に捨てたらunittest、テストをグローバル関数または新しいクラス階層に配置する必要がありますか?

4

1 に答える 1

5

ノーズでは、unittest.TestCases でのファンキーな種類のテストのサポートの欠如は意図的なものです。ノーズは unittest とまったく同じように unittest.TestCases からテストを収集する必要があるという考えでした。おそらくそれは悪い考えでしたが、今では変わる可能性はほとんどありません。

そのため、最先端にいることを気にしない限り、nose2 を試すことをお勧めします。あらゆる種類のテスト用のあらゆる種類のテスト プラグインをサポートします。ドキュメントは rtd にあります: http://nose2.readthedocs.org/en/latest/index.html、pypi でダウンロードします: http://pypi.python.org/pypi/nose2/0.4.1

于 2012-09-16T13:52:40.323 に答える