Skip to main content

Testbench Workbench란

Orchestra Testbench는 테스트용이지만, Workbench를 조합하면 패키지 리포지토리 내에 작은 Laravel 앱을 만들어 손끝에서 동작시킬 수 있습니다. package-testing에서 만든 테스트를 보완하면서, UI 확인, 라우트 소통, 시더 딸린 검증을 진행하고 싶을 때 사용합니다.

셋업

1

Testbench를 설치한다

2

Workbench를 작성한다

이 커맨드는 이하를 한꺼번에 실행합니다.
  • workbench/ 디렉토리 구조를 작성
  • composer.jsonautoload-dev에 Workbench 네임스페이스를 추가
  • composer.jsonscripts에 빌드용 커맨드를 추가
추가 옵션:
  • --force : 기존 파일을 덮어씀
  • --basic : 라우트·package discovery 설정을 생략한 심플한 구성
  • --devtool : DevTool 서포트를 활성화
3

빌드하여 기동한다

workbench:installworkbench/ 디렉토리나 autoload-dev, 관련 스크립트를 한꺼번에 정비합니다.
설치 후, composer.json에는 이하의 스크립트가 추가됩니다.

testbench.yaml로 개발 환경을 정의한다

Workbench의 동작은 루트에 두는 testbench.yaml에서 관리합니다.
testbench.yaml은 환경별로 다른 설정을 포함할 수 있으므로, .gitignore에 추가하여 커밋 대상에서 제외하는 것이 권장됩니다. 대신 testbench.yaml.example을 템플릿으로서 리포지토리에 포함해 주세요.
주요 설정 옵션: 환경 변수도 testbench.yaml에서 관리할 수 있습니다.

workbench 디렉토리 구조

workbench
app
Models
bootstrap
config
database
factories
migrations
public
storage

Workbench가 제공하는 주요 기능

WorkbenchServiceProvider

Workbench 전용의 서비스 프로바이더를 작성하여, 데모용의 등록 처리를 합니다.

라우트와 컨트롤러

workbench/routes/web.phpworkbench/routes/api.php에 검증 라우트를 둘 수 있습니다.

마이그레이션과 Seeder

workbench/database/migrationsworkbench/database/seeders를 사용하면, 실운용에 가까운 데이터 구조로 검증할 수 있습니다.
Seeder로 테스트 데이터를 생성합니다.

서비스 기동과 CLI 확인

vendor/bin/testbench 경유로 Artisan 커맨드를 실행할 수 있습니다.

WithWorkbench 트레이트를 사용한 테스트

WithWorkbench 트레이트를 사용하면, testbench.yaml의 설정이 자동 테스트에도 적용됩니다.

테스트와의 연계

Workbench는 “수동 확인·데모용 앱”, Testbench의 테스트 코드는 “자동 검증”으로서 역할을 분담하면 운용하기 쉬워집니다.
  • 자동화: tests/에서 회귀를 방지
  • 수동 확인: workbench/에서 화면·도선·통합 거동을 확인

트러블슈팅

testbench.yaml의 구문과 프로바이더 설정을 확인해 주세요. YAML의 인덴트 에러가 원인이 되는 경우가 있습니다.
라우트 파일의 경로와 WorkbenchServiceProvider의 등록을 확인해 주세요. testbench.yamldiscovers.webtrue로 되어 있는지 확인합니다.
마이그레이션의 경로가 올바른지 확인해 주세요. SQLite를 사용하는 경우에는 create-sqlite-db 빌드 스텝이 포함되어 있는지 확인합니다.

관련 페이지

Orchestra Testbench로 Laravel 패키지를 테스트하기

패키지 테스트 기반의 만드는 법을 먼저 확인합니다.

패키지의 버전 호환성 관리

Laravel과 Testbench의 대응표와 CI 매트릭스 운용을 확인합니다.
마지막 수정일 2026년 7월 13일