注目イベント!
春の新人向け連載企画開催中
新人エンジニアの皆さん、2024春、私たちと一緒にキャリアアップの旅を始めませんか?
IT業界への最初の一歩を踏み出す新人エンジニアをサポートする新連載スタート!
mameyose

Pytestを使ってみる(その1:準備編)

| 2 min read
Author: shuichi-takatsu shuichi-takatsuの画像

Pythonでプログラムを書いていて「TDD(テスト駆動開発)」にトライしてみたいと思ったことは無いでしょか?
そんなときは「テスティングフレームワーク」がおすすめです。
JavaではJUnitが有名ですが、Pythonにもテスティングフレームワークが用意されています。
Pythonには標準装備の「unittest」というテスティングフレームワークがありますが、今回は人気のある「Pytest」を紹介します。

Pytest とは

#

Pytestとは、Python用に設計された単体テスト用のフレームワーク(テスティングフレームワーク)です。
Pytestは、Pythonに標準装備のunittestの欠点を克服するために開発されたモジュールで、unittestよりもテスト構文が直感的に書けるようになっています。

Pytest のインストール

#

インストールは非常に簡単です。
次のコマンドでインストールします。

pip install pytest

簡単なサンプル

#

Pytestを試すための簡単なサンプルプログラムを作ってみましょう。
「test_sample.py」という名称のテキストファイルを作成し、以下のプログラムを記述します。
(ファイル名の先頭は「test_」で書き始めるのが慣習のようです。今回もそれに習います)

def test_ok():
    a = 1
    b = 1
    assert a == b

def test_ng():
    a = 1
    b = 1
    assert a != b

1つ目の関数「test_ok」は、2つの変数が「=(イコール)」であるかどうかをアサーションで確認しています。
2つ目の関数「test_ng」は、2つの変数が「!=(ノット・イコール)」であるかどうかを確認しています。
実行したときの結果として「1つ目の関数は成功」「2つ目の関数は失敗」するように設計・実装しました。

上記のプログラムを

python -m pytest test_sample.py

または

pytest test_sample.py

で実行します。

実行結果が以下のように表示されました。

実行結果を見ると

  • 1つ目の関数「test_ok」は成功
  • 2つ目の関数「test_ng」は失敗

になっています。
失敗した方の関数の方は、どのような理由でテストに失敗したのかについて変数の値を示して説明が出力されています。
Pytestが正しく動いていることがわかります。

まとめ

#

今回は簡単ではありますが、「Pytest」のインストールと簡単なサンプルを紹介しました。
以前連載した「Google Test を使ってみる」編の「GoogleTest」の環境構築より、Pythonの場合はpipがすべてサポートしてくれるので簡単に構築できました。
今後もいろいろなPytestの使い方を紹介していきたいと思います。

ソフトウェアテストに関する技法やテクニックをまとめています。

テストに活用していただければ幸いです。

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。