Python、テスト用ライブラリの紹介


プログラミングにおいて、テストが大事なのは言うまでもありません。「テスト駆動開発」という開発手法がありますが、この方法に従う・従わないにせよ、テストを書くことはベストプラクティクスの一つです。Pythonではテストを助けるためのライブラリが豊富にありますが、その中から3つを紹介します。

標準ライブラリ

Battery Included(バッテリー同胞)の考えがあるPythonでは、多種・多機能なライブラリ群が標準で付属しています。テストについても例外でなく、2つの優秀なライブラリを使うことが可能です。

unittest

公式ドキュメント(日本語訳)

Javaの「JUnit」に触発されたもので、他言語でも似たようなユニットテストフレームワークが多く存在します。unittest.TestCaseを継承したクラスを作成し、test_spamのような、「test」でメソッドを定義するだけです。以下は、ある関数(is_factor)が正しく動作するかをチェックするサンプルです。

このテストは、コマンドラインから実行するのがお勧めです。

これは、カレントディレクトリの「test_*.py」のようなpythonファイル全てのテストを実行します。

のようにすると、「test」ディレクトリの「*_test.py」という名前のファイル全て、という指定になります。詳しいオプションは公式ドキュメントを参照すると良いでしょう。

doctest

公式ドキュメント(日本語訳)

上記のunittestは、少し面倒に感じる人もいるかもしれません。そのような場合にお勧めなのが、doctestです。これがどういったテストかは、以下のコードを見るのが手っ取り早いでしょう。

関数のdocstringが増えています。このように、docstring中に
>>> 処理
結果
のような形で記述していきます。

このdoctestは先程のようにtest.pyを作成する必要がなく、更にテストがそのままdocstringになります。コマンドラインからは、以下のように実行できます。

サードパーティ製ライブラリ

pytest

(pip install pytest)
Github

unittestと似ていますが、より軽量な構文でテストを書くことができます。更に、テストにエラーがあった際に表示される内容が詳しくなっています。unittestで書いたテストも実行してくれるので、過去に書いたテストが無駄にもなりません。

コマンドラインからは、以下のように実行できます。

テストの対象となるのは、カレントディレクトリ以下の「test_.py」や「_test.py」全てです。その中で、unittestのテストと、testから始まる通常の関数、Testから始まるクラス名(のtestから始まるメソッド)をそれぞれ実行していきます。通常のunittestに比べると、範囲が広くなっていますね。

 

 

株式会社キャパでは、アプリの企画・開発についてご相談を承っています。

アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介


関連記事一覧

we love develop
アプリやシステムの開発を通じて、お客様のビジネスを成長させることが私たちのビジネスです。お気軽にお問い合わせください。
 お問い合せ

お電話でのお問い合わせはこちらから
TEL:03-5297-2871

メールマガジンの登録

キャパでは誰かに話したくなるようなIT小ネタを、週に一回メルマガで配信しています。
ぜひ購読してみませんか?
 購読する

ホワイトペーパーの入手

ITブログ月間20万PV達成!自社オウンドメディアの運用ノウハウを無料公開しています。
 ダウンロード

記事カテゴリ記事カテゴリ

月別投稿記事

PAGE TOP