Pre-release Smoke Suite
릴리스 전 clean-install/업그레이드 경로 전수 검증용 스위트
목적
- 마이그레이션 실행 후 핵심 사용자 여정 1회전 검증 (end-to-end)
- 마이그레이션–Repository/Service 결합 회귀 방지 (beta.2 #12 유형)
- 업그레이드 경로에서 기존 데이터 호환성 검증
실행
# 전체 스모크 스위트
composer test-smoke
# 첫 실패에서 중단 (CI 모드)
composer test-smoke-ci
# 특정 테스트만
php artisan test tests/Feature/Installation/FreshInstallSmokeTest.php
스코프
phpunit testsuite Installation은 다음 2개 경로를 커버합니다:
<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 레이어까지)