私はPythonで最初の適切なプロジェクトを完了しましたが、今の仕事はそのためのテストを書くことです。
プロジェクトをやったのは初めてなので、テストを書くのはこれが初めてです。
問題は、どうやって始めるかです。まったくわからない。テストを書くことから始めるために使用できるドキュメント/チュートリアル/リンク/本を誰かに教えてもらえますか(特にユニットテストを推測しています)
このトピックに関するアドバイスは歓迎されます。
私はPythonで最初の適切なプロジェクトを完了しましたが、今の仕事はそのためのテストを書くことです。
プロジェクトをやったのは初めてなので、テストを書くのはこれが初めてです。
問題は、どうやって始めるかです。まったくわからない。テストを書くことから始めるために使用できるドキュメント/チュートリアル/リンク/本を誰かに教えてもらえますか(特にユニットテストを推測しています)
このトピックに関するアドバイスは歓迎されます。
回答:
ユニットテストを初めて使用する場合は、最も簡単な学習方法が最適です。その上py.test
で、デフォルトのunittest
モジュールではなく使用することをお勧めします。
同じことを行う次の2つの例を考えてみます。
例1(単体テスト):
import unittest
class LearningCase(unittest.TestCase):
def test_starting_out(self):
self.assertEqual(1, 1)
def main():
unittest.main()
if __name__ == "__main__":
main()
例2(pytest):
def test_starting_out():
assert 1 == 1
両方のファイルの名前がであると仮定してtest_unittesting.py
、テストをどのように実行しますか?
例1(単体テスト):
cd /path/to/dir/
python test_unittesting.py
例2(pytest):
cd /path/to/dir/
py.test
unit-test
まだ、標準ライブラリに含まれている場合py.test
と、nose
はるかに簡単なインターフェイスと同じ機能を提供しますか?それだけで、下位互換性を提供することであり、あるいはんunittest
いくつかの利点があることを持っているpy.test
し、nosetest
提供することはできませんか?
unittest
パッケージで十分です。これは標準であり、正常に動作することが保証されています。最後に、コードを使用する人は誰でも、追加のパッケージをインストールする必要はありません。
無料のPythonの本であるDive Into Pythonには、ユニットテストに関する章があり、役立つと思います。
現代の慣例に従っている場合は、プロジェクトの作成中にテストを作成し、プロジェクトがほぼ終了するまで待たないでください。
少し遅れましたが、今度は知っています。:)
私の意見では、チェックに適した3つの優れたPythonテストフレームワークがあります。
unittest-モジュールはすべてのPythonディストリビューションの
ノーズに標準で付属しています-unittestテストを実行でき、ボイラープレートが少なくなっています。
pytest-単体テストも実行し、定型文が少なく、レポートが改善され、優れた追加機能がたくさんあります
これらすべてを適切に比較するには、http://pythontesting.net/start-hereでそれぞれの紹介を読んでください。
フィクスチャに関する拡張記事などもあります。
unittestのドキュメントから始めるのが良いでしょう。
また、現在は少し遅れていますが、将来的にはプロジェクト自体の前または最中に単体テストを作成することを検討してください。そうすれば、それらを使用してテストを進めることができ、(理論的には)回帰テストとして使用して、コードの変更によって既存のコードが破損していないことを確認できます。これはテストケースを書くことの完全な利点をあなたに与えます:)
unittest
。コツをつかんだら、それを開発にさらに使用し、各ユニットのテストケースの数を増やします。
他の人がすでに答えたように、ユニットテストを書くのは遅いですが、遅すぎません。問題は、コードがテスト可能かどうかです。実際、既存のコードをテストするのは簡単ではありません。これについての本もあり、レガシーコードを効果的に使用することができます(要点または先行PDFを参照)。
ユニットテストを書くかどうかはあなたの呼び出しです。面倒な作業になる可能性があることに注意してください。これに取り組み、単体テストを学ぶか、最初に受け入れ(エンドツーエンド)テストを作成することを検討し、コードを変更するか、プロジェクトに新しい機能を追加するときに、単体テストの作成を開始します。