pytest
開発者が作成した関数やメソッドが意図した通りに機能するかを確かめる単体テストを作成し、まとめて実行して結果を報告してくれる。Pythonの標準環境では存在しないためpipコマンドなどで導入し、テストスクリプトには「import pytest」で読み込む。
テストスクリプトには「test_対象メソッド」という命名規約に従って関数の形でテストケースを作成する。各テストケースには対象メソッドを実行する際の引数や期待される出力などを指定し、assert文を通じて結果を報告する。作成したテストは「python -m pytest テストスクリプト名」でまとめて実行し、結果を一覧することができる。スクリプト内の特定の関数やクラス、クラスのメソッドのみを対象とするよう指定することもできる。
個別にテストを記述して実施する場合に比べ、テストコードを対象のコード本体とは別にまとめて管理することができ、複数のテストの実行も一気に行うことができる。コードを変更した後に動作確認を簡単に行うことができ、欠陥箇所の早期発見に寄与する。
Pythonには標準のテストフレームワークとして「unittest」(ユニットテスト)も内蔵されており、実現できる機能などにほとんど差は無いが、unittestはJUnit等のxUnit系のフレームワークと親和性が高い一方、pytestはよりPythonらしい書き方でテスト作成ができるとされる。
(2021.8.14更新)