私はPythonで最初の適切なプロジェクトを完成させました。そして今私の仕事はそれのためにテストを書くことです。
これが私が初めてプロジェクトをやった時なので、私がそれのためにテストを書くのは初めてです。
問題は、 どのように 私は始めますか?まったくわかりません。誰もが私がテストを書くことから始めるのに使用できるいくつかのドキュメンテーション/チュートリアル/リンク/本を私に指摘することができます(そして特に私はユニットテストを推測します)
このトピックに関するアドバイスは歓迎されます。
ユニットテストを使用するのが初めての方は、最も簡単な学習方法が最善です。それに基づいて、私は デフォルトのunittest
モジュール よりも py.test
を使うことを勧めます。
これら2つの例を見てください。これらは同じことをします。
例1(unittest):
import unittest
class LearningCase(unittest.TestCase):
def test_starting_out(self):
self.assertEqual(1, 1)
def main():
unittest.main()
if __== "__main__":
main()
例2(pytest):
def test_starting_out():
assert 1 == 1
両方のファイルの名前がtest_unittesting.py
であると仮定して、どのようにテストを実行しますか?
例1(unittest):
cd /path/to/dir/
python test_unittesting.py
例2(pytest):
cd /path/to/dir/
py.test
無料のPython本 Dive Into Python には ユニットテストに関する章があります あなたが役に立つと思うかもしれません。
あなたが現代の慣習に従うなら、あなたはあなたがあなたのプロジェクトを書いている間おそらくテストを書くべきであり、あなたのプロジェクトがほぼ完成するまで待たないでください。
少し遅くなりましたが、今度は次の時間になります。 :)
私の意見では、チェックアウトするのに適した3つの素晴らしいPythonテストフレームワークがあります。
unittest - モジュールはすべてのpythonディストリビューションに標準装備されています
鼻 - 単体テストのテストを実行でき、定型句が少なくなります。
pytest - 単体テストも実行し、定型句が少なく、レポートが改善され、優れた機能が多数追加されています
これらすべての良い比較を得るために、 http://pythontesting.net/start-here でそれぞれの紹介を読んでください。
備品に関する詳細な記事もあります。
unittest のドキュメントは始めるのに良い場所でしょう。
また、現在は少し遅れていますが、将来的にはプロジェクト自体の前または最中にユニットテストを書くことを検討してください。そのようにして、あなたが行っているときにテストするためにそれらを使うことができ、そして(理論的には)あなたがコード変更が既存のコードを壊さなかったことを確かめるために回帰テストとしてそれらを使うことができます。これはあなたにテストケースを書くことの完全な利益を与えるでしょう:)
他の人がすでに答えたように、ユニットテストを書くのは遅すぎますが、遅すぎません。問題は、コードがtestableかどうかです。実際、既存のコードをテストするのは簡単ではありません。これについての本さえあります。 レガシーコードを効果的に使用する ( キーポイント または 前駆体PDF を参照)。
ユニットテストを書くかどうかはあなたの電話です。退屈な作業になる可能性があることに注意する必要があります。これに取り組み、ユニットテストを学習するか、最初に受け入れ(エンドツーエンド)テストの作成を検討し、コードを変更するかプロジェクトに新しい機能を追加するときにユニットテストの作成を開始します。
nosetestsは、Pythonでのユニットテストに最適なソリューションです。それはunittestベースのテストケースとdoctestsの両方をサポートしており、そしてあなたがちょうどあなたがそれを使い始めるのを簡単な設定ファイルで始めます。