かべぎわブログ

ブログです

pytestでPythonスクリプトをテストする

概要

PythonのテストツールのpytestをつかってPythonスクリプトのテストをしてみたいと思います。

インストール

pytestはpipでインストールできます。

$ pip install pytest

テストしてみる

実際にpytestでテストしてみます。

前提

こんなかんじのスクリプトたちがあるとする。

テストされる.py

たしざんするだけのやつ

def addition(a, b):
    result = a + b
    return(result)

テストする.py

そしてそれのテストコードがあるとするとこう(本当はこんなケース必要ないけれど)
1+2=3だよねー
2+2=4だよねーってかんじ。

def test_addtion_3()はまちがっているのでエラーになるはず

import wawawa
def test_addtion_1():
    assert wawawa.addition(1,2) == 3

def test_addtion_2():
    assert wawawa.addition(2,2) == 4

def test_addtion_3():
    assert wawawa.addition(2,2) == 99

pytest でテストしてみる

テストしてみます。
いい忘れていたけどディレクトリ構成はこんなかんじ。

$ ls -l .
-a----        2019/10/21     7:44            141 test_wawawa.py
-a----        2019/10/21     7:41             61 wawawa.py

テストしてみます。
わかりやすくするためにオプションに-vを指定して実行してあげています。

$ pytest -v ./test_wawawa.py
====================================== test session starts =======================================
platform win32 -- Python 3.7.4, pytest-5.2.1, py-1.8.0, pluggy-0.13.0 -- c:\users\takak\appdata\local\programs\python\python37-32\python.exe
cachedir: .pytest_cache
rootdir: C:\Users\takak\test_test
collected 3 items

test_wawawa.py::test_addtion_1 PASSED                                                       [ 33%]
test_wawawa.py::test_addtion_2 PASSED                                                       [ 66%]
test_wawawa.py::test_addtion_3 FAILED                                                       [100%]

============================================ FAILURES ============================================
_________________________________________ test_addtion_3 _________________________________________

    def test_addtion_3():
>       assert wawawa.addition(2,2) == 99
E       assert 4 == 99
E         -4
E         +99

test_wawawa.py:10: AssertionError
================================== 1 failed, 2 passed in 0.03s ===================================

3つ目のテストケースでFAILEDとなっていることがわかる。

おわりに

べんりですね。

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで