Files
SuperClaude/docs/testing/procedures.md

104 lines
2.8 KiB
Markdown
Raw Normal View History

# テスト手順とCI/CD
## テスト構成
### pytest設定
- **テストディレクトリ**: `tests/`
- **テストファイルパターン**: `test_*.py`, `*_test.py`
- **テストクラス**: `Test*`
- **テスト関数**: `test_*`
- **オプション**: `-v --tb=short --strict-markers`
### カバレッジ設定
- **対象**: `superclaude/`, `setup/`
- **除外**: `*/tests/*`, `*/test_*`, `*/__pycache__/*`
- **目標**: 90%以上のカバレッジ
- **レポート**: `show_missing = true` で未カバー行を表示
### テストマーカー
- `@pytest.mark.slow`: 遅いテスト(`-m "not slow"`で除外可能)
- `@pytest.mark.integration`: 統合テスト
## 既存テストファイル
```
tests/
├── test_get_components.py # コンポーネント取得テスト
├── test_install_command.py # インストールコマンドテスト
├── test_installer.py # インストーラーテスト
├── test_mcp_component.py # MCPコンポーネントテスト
├── test_mcp_docs_component.py # MCPドキュメントコンポーネントテスト
└── test_ui.py # UIテスト
```
## タスク完了時の必須チェックリスト
### 1. コード品質チェック
```bash
# フォーマット
black .
# 型チェック
mypy superclaude setup
# リンター
flake8 superclaude setup
```
### 2. テスト実行
```bash
# すべてのテスト
pytest -v
# カバレッジチェック90%以上必須)
pytest --cov=superclaude --cov=setup --cov-report=term-missing
```
### 3. ドキュメント更新
- 機能追加 → 該当ドキュメントを更新
- API変更 → docstringを更新
- 使用例を追加
### 4. Git操作
```bash
# 変更確認
git status
git diff
# コミット前に必ず確認
git diff --staged
# Conventional Commitsに従う
git commit -m "feat: add new feature"
git commit -m "fix: resolve bug in X"
git commit -m "docs: update installation guide"
```
## CI/CD ワークフロー
### GitHub Actions
- **publish-pypi.yml**: PyPI自動公開
- **readme-quality-check.yml**: ドキュメント品質チェック
### ワークフロートリガー
- プッシュ時: リンター、テスト実行
- プルリクエスト: 品質チェック、カバレッジ確認
- タグ作成: PyPI自動公開
## 品質基準
### コード品質
- すべてのテスト合格必須
- 新機能は90%以上のテストカバレッジ
- 型ヒント完備
- エラーハンドリング実装
### ドキュメント品質
- パブリックAPIはドキュメント化必須
- 使用例を含める
- 段階的複雑さ(初心者→上級者)
### パフォーマンス
- 大規模プロジェクトでのパフォーマンス最適化
- クロスプラットフォーム互換性
- リソース効率の良い実装