# ユニットテストする

```bash
poetry run pytest
```

- プロジェクトルートで `poetry run pytest` を実行してユニットテストできます
- デフォルトでは`/tests/` にある `test_*.py` を対象にユニットテストを実行します
- `pytest` の設定は `/pyproject.toml` の `[tool.pytest.*]` と `[tool.coverage.*]` で設定しています

## よく使うオプション

```bash
poetry run pytest -sv --maxfail=1
```

- `-s`: `print()`の出力をそのまま表示するのでデバッグに便利
- `-v`: それぞれのテストの関数名を詳細に表示
- `--maxfail=1`: 最初の1件で停止するのでデバッグに便利

## テストカバレッジを確認する

```bash
poetry run pytest --cov=haniwers --cov-report=term --html=report.html
```

- `--cov=haniwers`オプションでテストカバレッジを確認できます
- カバレッジレポートの出力には`pytest-cov`が必要です（このプロジェクトでは、自動でインストールされるはずです）
- `--cov-report=term`で生成されるレポートをターミナルで確認できます
- `--html=report.html`で生成されるレポートは、ブラウザで開くことで視覚的にカバレッジを確認できます

## 開発時の注意

- 機能を追加した場合は、対応するユニットテストを追加してください
- バグを修正した場合も、再発を防ぐために再現テストを追加してください
