Pythonのテスト・デバッグ・コード品質管理を解説します。品質の高いコードを書くための必須スキルです。
pytestでテストを書く
pip install pytest
# test_calculator.py
def add(a, b):
return a + b
def divide(a, b):
if b == 0:
raise ValueError("0で割ることはできません")
return a / b
def test_add():
assert add(2, 3) == 5
assert add(-1, 1) == 0
def test_divide():
assert divide(10, 2) == 5.0
def test_divide_by_zero():
import pytest
with pytest.raises(ValueError):
divide(10, 0)
pytest test_calculator.py -v
デバッグ方法
| 方法 | コマンド・使い方 |
|---|
| print デバッグ | print(変数) で値を確認 |
| pdb(標準デバッガ) | import pdb; pdb.set_trace() |
| breakpoint(Python 3.7+) | breakpoint() を挿入 |
| ログ出力 | import logging で詳細なログ管理 |
コード品質ツール
| ツール | 用途 |
|---|
| black | コード自動フォーマット |
| flake8 | コードスタイルチェック(PEP8準拠) |
| mypy | 型ヒントの静的チェック |
| pylint | 総合的なコード品質チェック |
まとめ
- pytestでassertを使った自動テストを書ける
- pytest.raises()で例外が発生することをテストできる
- blackでコードを自動フォーマットして一貫したスタイルを保てる
コメント