[Python] Python + Pytest ( + VS Code) テスト環境構築

内容

Python + PyTest ( + VS Code) で動作する最低限のテスト環境。
単純なクラス(calc.py)とFizzBuzzfizzbuzz.py)を対象としたテストコードを用意。
コードは以下にアップ。

github.com

必須

pytestが必要なのでインストールしてください。

pip install pytest

実行方法

Windowsであればコマンドプロンプトを開き該当プロジェクトのルートに移動してpytestコマンドを実行する。

cd c:\workspace\python\pytest_demo
pytest

ディレクトリ構成

.
│  fizzbuzz.md
│  LICENSE
│  pytest.ini
│  README.md
│  requirements.txt
│  
├─.vscode
│      launch.json
│      
├─src
│  │  calc.py
│  └─fizzbuzz.py
│          
└─tests
    │  test_calc.py
    │  test_fizzbuzz.py
    └─__init__.py

補足説明

  • ./pytest.ini
addopts = -v --capture=no

caputure=no はプログラム中のprint出力をpytest時に表示させるために必要。

  • ./tests/__init__.py

test_***.pyがある階層に必要。内容は空でよい。

"cwd": "${workspaceFolder}",
"env": {"PYTHONPATH": "${cwd}"}

VS Codeからtest_**.pyを実行(F5)時にModuleNotFoundErrorが発生する。
この設定がない場合は以下の長いコードをテストモジュール全てに書く必要がある。

import os
import sys
sys.path.append(os.path.abspath(os.path.dirname(os.path.abspath(__file__))[1]))
from src.calc import Calc

設定があれば以下でOK

from src.calc import Calc