Testbench Workbench란
Orchestra Testbench는 테스트용이지만, Workbench를 조합하면 패키지 리포지토리 내에 작은 Laravel 앱을 만들어 손끝에서 동작시킬 수 있습니다.package-testing에서 만든 테스트를 보완하면서, UI 확인, 라우트 소통, 시더 딸린 검증을 진행하고 싶을 때 사용합니다.
셋업
1
Testbench를 설치한다
2
Workbench를 작성한다
workbench/디렉토리 구조를 작성composer.json의autoload-dev에 Workbench 네임스페이스를 추가composer.json의scripts에 빌드용 커맨드를 추가
3
빌드하여 기동한다
workbench:install은 workbench/ 디렉토리나 autoload-dev, 관련 스크립트를 한꺼번에 정비합니다.composer.json에는 이하의 스크립트가 추가됩니다.
testbench.yaml로 개발 환경을 정의한다
Workbench의 동작은 루트에 두는testbench.yaml에서 관리합니다.
환경 변수도
testbench.yaml에서 관리할 수 있습니다.
workbench 디렉토리 구조
workbench
app
Http
Models
Providers
bootstrap
config
database
factories
migrations
seeders
public
resources
routes
storage
Workbench가 제공하는 주요 기능
WorkbenchServiceProvider
Workbench 전용의 서비스 프로바이더를 작성하여, 데모용의 등록 처리를 합니다.라우트와 컨트롤러
workbench/routes/web.php나 workbench/routes/api.php에 검증 라우트를 둘 수 있습니다.
마이그레이션과 Seeder
workbench/database/migrations와 workbench/database/seeders를 사용하면, 실운용에 가까운 데이터 구조로 검증할 수 있습니다.
서비스 기동과 CLI 확인
vendor/bin/testbench 경유로 Artisan 커맨드를 실행할 수 있습니다.
WithWorkbench 트레이트를 사용한 테스트
WithWorkbench 트레이트를 사용하면, testbench.yaml의 설정이 자동 테스트에도 적용됩니다.
테스트와의 연계
Workbench는 “수동 확인·데모용 앱”, Testbench의 테스트 코드는 “자동 검증”으로서 역할을 분담하면 운용하기 쉬워집니다.- 자동화:
tests/에서 회귀를 방지 - 수동 확인:
workbench/에서 화면·도선·통합 거동을 확인
트러블슈팅
Workbench를 빌드할 수 없음
Workbench를 빌드할 수 없음
testbench.yaml의 구문과 프로바이더 설정을 확인해 주세요. YAML의 인덴트 에러가 원인이 되는 경우가 있습니다.라우트가 로드되지 않음
라우트가 로드되지 않음
라우트 파일의 경로와 WorkbenchServiceProvider의 등록을 확인해 주세요.
testbench.yaml의 discovers.web이 true로 되어 있는지 확인합니다.데이터베이스 에러가 발생함
데이터베이스 에러가 발생함
마이그레이션의 경로가 올바른지 확인해 주세요. SQLite를 사용하는 경우에는
create-sqlite-db 빌드 스텝이 포함되어 있는지 확인합니다.관련 페이지
Orchestra Testbench로 Laravel 패키지를 테스트하기
패키지 테스트 기반의 만드는 법을 먼저 확인합니다.
패키지의 버전 호환성 관리
Laravel과 Testbench의 대응표와 CI 매트릭스 운용을 확인합니다.