Pythonテストツールまとめ

こんにちは。KOUKIです。

今日は、Pythonのテストツールのまとめをします。
※ここでは簡単な使い方だけ紹介します

Python テストツールについて

次の4つのテストツールをご紹介します。

  1. doctest
  2. unittest
  3. pytest
  4. selenium

seleniumは、厳密にはpythonのテストツールではありませんが、便利なので追加しました。

doctest

最初は、doctestです。

以下、公式サイトからdockerテストの引用です。

doctest モジュールは、対話的 Python セッションのように見えるテキストを探し出し、セッションの内容を実行して、そこに書かれている通りに振舞うかを調べます。 doctest は以下のような用途によく使われています:
モジュールの docstring (ドキュメンテーション文字列) 中にある対話実行例のすべてが書かれている通りに動作するか検証することで、docstring の内容が最新かどうかチェックする。
テストファイルやテストオブジェクト中の対話実行例が期待通りに動作するかを検証することで、回帰テストを実現します。
入出力例を豊富に使ったパッケージのチュートリアルドキュメントが書けます。入出力例と解説文のどちらに注目するかによって、ドキュメントは「読めるテスト」にも「実行できるドキュメント」にもなります。

公式サイトの文章って、小難しいですよね!具体例をお見せします。

calc.pyというファイルを用意して、次のコードを実装してください。

doctestでは、上記の通り、「コメントの中にテストを書く」のです。

このプログラムを実行すると次の出力結果を得られます。

「30」と予想した計算結果が実際は「40」だったため、エラーになりました。

30→40にしてみましょう。

今度は、何も出力されなくなりました。

doctest は、このように簡単に挙動のチェックができます。

Read More

UnitTest

次は、unittestについて学びましょう。

公式サイトによるとこのようなテストフレームワークです。

unittest ユニットテストフレームワークは元々 JUnit に触発されたもので、 他の言語の主要なユニットテストフレームワークと同じような感じです。 テストの自動化、テスト用のセットアップやシャットダウンのコードの共有、テストのコレクション化、そして報告フレームワークからのテストの独立性をサポートしています。

pythonは便利な言語で、既にテストフレームワークを内部に実装しています。

unittestは、主に単体テストで用いられます。

doctestで書いた処理をunittestに置き換えてみましょう。

次の構成になるようにファイルを用意してください。

doctestとの違いは、テストコードを別ファイルに分けて管理することです。

より詳細なテストが実施できます。

テストを実行してみましょう。

エラーになりましたね。

予想値が「40」でしたが、実際は60です。

テストコードを書き換えてみましょう。

テストを実行します。

Read More

pytest

次は、pytestについて学びます。

pytestフレームワークは、スモールテストを簡単に作成できまが、アプリケーションやライブラリに大して、より複雑なことが行えるように拡張することができます。

pytestもunittestと似たようなものです。

次のモジュールをインストールしてください。

unittestで書いたテストコードを実行できます。

コマンドプロンプト上からpytestコマンドで、テストを実行しましょう。

pytestは、unittestより機能が豊富で、pytest実行時に次のオプションを付与すると様々なテストを実行できます。

オプションの一部を紹介します。

オプション説明
–helpヘルプを表示
–collect-only指定したオプションと構成に基づいて実行されるテストを表示
-k EXPRESSIONk オプションは、実行するテスト関数を、式を使って検索できるようにしたフィルタ
-mMARKERPR

Read More

selenium

最後に[selenium]を紹介して終わりにします。

selenium は、Webサイトなどを自動でテストするツールです。

下記のコマンドを実行して、仮想環境を作成してください。

仮想環境構築用のvenvフォルダが作成できたら、venv -> Scripts順に移動してください。

Scriptsフォルダに入ったら次のコマンドを実行してください。

次に、driverを取得します。

Chrome用のdriver

このドライバーをScriptsフォルダ内に格納します。

test_ui.pyファイルを作成して、テストコードを書きましょう。

仮想環境が有効になっている状態で、test_ui.pyが格納されているディレクトリに移動後、以下のコマンドを実行してください。

ブラウザが立ち上がるはずです。

Read More

まとめ

個人的には、pytest + seleniumの組み合わせが最強ですね。

テストコードが書けると、現場でも重宝されます。

特にプログラミング初学者の方には、マスターしておいてほしい分野ですね^^

それでは、また!

コメントを残す