Consolidate Python ignore rules into root gitignore
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
---
|
||||
applyTo: "tests/**/*.py"
|
||||
---
|
||||
|
||||
# Pytest Instructions
|
||||
|
||||
## Basic Rules
|
||||
|
||||
- pytest を使用する。
|
||||
- AAA パターンで書く。
|
||||
- 1テスト1責務にする。
|
||||
- 1テスト1Actにする。
|
||||
- テスト名は `test_<対象>_<条件>_<期待結果>` にする。
|
||||
|
||||
## Arrange / Act / Assert
|
||||
|
||||
- Arrange: 前提データ、fixture、mockを準備する。
|
||||
- Act: 対象処理を1回だけ実行する。
|
||||
- Assert: 結果を検証する。
|
||||
|
||||
## Fixtures
|
||||
|
||||
- fixture は前提条件の名前にする。
|
||||
- fixture には assert を書かない。
|
||||
- fixture にテストロジックを書かない。
|
||||
- Arrange が長くなる場合は fixture 化する。
|
||||
|
||||
## Parametrize
|
||||
|
||||
- 分岐、境界値、異常系は `pytest.mark.parametrize` を優先する。
|
||||
- テスト内で if/else を増やしすぎない。
|
||||
|
||||
## Exception Test
|
||||
|
||||
- 例外テストでは `pytest.raises(..., match=...)` を使用する。
|
||||
- 例外の型だけでなく、必要に応じてメッセージも検証する。
|
||||
|
||||
## Mock / Integration
|
||||
|
||||
- Unit TestではDB、ファイルI/O、現在時刻、外部APIをmockする。
|
||||
- Integration Testには `@pytest.mark.integration` を付ける。
|
||||
- 通常実行では以下を使用する。
|
||||
|
||||
```bash
|
||||
uv run pytest -m "not integration"
|
||||
```
|
||||
Reference in New Issue
Block a user