python pytestの使い方
概要
- pythonのテストフレームワーク
pytest.ini
ファイルにパスを設定することで、テスト対象のファイルを指定できる- 標準出力はデフォルトでは表示されないが、
-s
オプションをつけることで表示できる
インストール
$ pip install pytest
ファイル構成例
project/
│
├── src/
│ ├── __init__.py
│ └── my_module.py
│
├── tests/
│ ├── __init__.py
│ ├── conftest.py # ここに sys.path.insert を追加
│ └── test_my_module.py
│
└── pytest.ini # ここに pythonpath を追加する場合
pytest.ini
- テスト対象のディレクトリの指定
- テスト対象のファイル名の指定
# pytest.ini
[pytest]
pythonpath = src
testpaths = tests
python_files = test_*.py tests_*.py
src/my_module.py
def add(a, b):
return a + b
tests/test_my_module.py
from my_module import add
def test_add():
assert add(1, 2) == 3
実行
すべてのテストを実行
$ pytest
特定のテストを実行
::<関数名>
で実行するテストを指定できる
$ pytest tests/test_my_module.py::test_add
トラブルシューティング
pytestを実行してもテストが実行されない
- 原因
tests/__init__.py
が存在しないpytest.ini
に記されているpython_files
に一致していないテストファイル名になっている