63 lines
2.5 KiB
Markdown
63 lines
2.5 KiB
Markdown
# Pre-release Smoke Suite
|
|
|
|
> 릴리스 전 clean-install/업그레이드 경로 전수 검증용 스위트
|
|
|
|
## 목적
|
|
|
|
- 마이그레이션 실행 후 핵심 사용자 여정 1회전 검증 (end-to-end)
|
|
- 마이그레이션–Repository/Service 결합 회귀 방지 (beta.2 #12 유형)
|
|
- 업그레이드 경로에서 기존 데이터 호환성 검증
|
|
|
|
## 실행
|
|
|
|
```bash
|
|
# 전체 스모크 스위트
|
|
composer test-smoke
|
|
|
|
# 첫 실패에서 중단 (CI 모드)
|
|
composer test-smoke-ci
|
|
|
|
# 특정 테스트만
|
|
php artisan test tests/Feature/Installation/FreshInstallSmokeTest.php
|
|
```
|
|
|
|
## 스코프
|
|
|
|
phpunit testsuite `Installation`은 다음 2개 경로를 커버합니다:
|
|
|
|
```xml
|
|
<testsuite name="Installation">
|
|
<directory>tests/Feature/Installation</directory>
|
|
<directory>modules/_bundled/*/tests/Feature/Installation</directory>
|
|
</testsuite>
|
|
```
|
|
|
|
| 위치 | 담당 범위 | 예시 |
|
|
|------|-----------|------|
|
|
| `tests/Feature/Installation/` (이 디렉토리) | 코어·크로스 모듈 스모크 | `FreshInstallSmokeTest.php`, `UpgradeSmokeTest.php` |
|
|
| `modules/_bundled/{id}/tests/Feature/Installation/` | 모듈별 설치·회귀 | `BoardFreshInstallTest.php`, `EcommerceFreshInstallTest.php` |
|
|
|
|
## 작성 대상 (TODO — 담당자 배정 대기)
|
|
|
|
### 코어·크로스 모듈 (이 디렉토리)
|
|
|
|
- [ ] `FreshInstallSmokeTest.php` — 마이그레이션 전수 실행 + 코어 헬스체크 (users/roles/modules 테이블 생성, 기본 역할/권한 시드)
|
|
- [ ] `UpgradeSmokeTest.php` — 이전 릴리스 시드 → 최신 마이그레이션 → 기존 데이터 접근 1회전
|
|
|
|
### 모듈별 (각 모듈 `tests/Feature/Installation/` 아래)
|
|
|
|
- [ ] `modules/_bundled/sirsoft-board/tests/Feature/Installation/BoardFreshInstallTest.php`
|
|
- `#12` 회귀: fresh install 후 `BoardService::createBoard()` 성공 검증 (`ensureBoardPartitions()` 우회 사용 금지)
|
|
- `#11` 회귀: 댓글 생성 → `board_posts.comments_count` 증가 검증 (HTTP 레이어 포함)
|
|
- [ ] `modules/_bundled/sirsoft-ecommerce/tests/Feature/Installation/EcommerceFreshInstallTest.php`
|
|
- 상품 생성 → 주문 → 결제 mock 1회전
|
|
|
|
## 작성 규칙
|
|
|
|
- `RefreshDatabase` + 실제 마이그레이션 전수 실행 (mock DB 금지)
|
|
- 모듈/플러그인 install artisan 커맨드 호출 경로 포함
|
|
- 각 단계에 명확한 assertion (`assertTrue(true)` 같은 무의미 assert 금지)
|
|
- 사용자 여정 1개를 end-to-end로 (HTTP 레이어까지)
|
|
|
|
> 상세: [docs/testing-guide.md — Pre-release Smoke Suite](../../../docs/testing-guide.md#pre-release-smoke-suite)
|