본문으로 건너뛰기

expect-cli: 에이전트가 실제 브라우저에서 코드를 테스트

정석

expect-cli

E2E 테스트는 작성하기 귀찮다. 셀렉터를 찾고, 시나리오를 짜고, 실패하면 디버깅하고. 그래서 많은 팀이 E2E 테스트를 미루거나 아예 안 쓴다.

expect-cli는 이 문제를 AI 에이전트에게 넘긴다. 하나의 명령어로:

  1. 코드 변경사항 스캔
  2. 테스트 계획 생성
  3. 실제 브라우저에서 실행

어떻게 작동하나

# 초기화
npx -y expect-cli@latest init

# 대화형 TUI
expect-cli open

# 자연어로 테스트 지시
expect-cli -m "test the login flow" -y

# 브랜치 변경사항 모두 테스트
expect-cli --target branch

# unstaged 변경사항 테스트
expect-cli --target unstaged

CLI 옵션

옵션설명
-m, --message자연어 테스트 지시
-f, --flow저장된 플로우 재사용
-y, --yes계획 리뷰 스킵, 즉시 실행
-a, --agent에이전트 제공자 (claude 또는 codex)
-t, --target테스트 대상: unstaged, branch, changes (기본값)
--verbose상세 로깅

핵심 특징

1. 코드 변경사항 기반

Git diff를 분석해서 무엇이 바뀌었는지 이해하고, 그에 맞는 테스트 계획을 생성.

2. 실제 브라우저에서 실행

헤드리스가 아닌 실제 브라우저에서 테스트. Playwright 기반으로:

3. 자연어 테스트 지시

expect-cli -m "로그인 플로우 테스트해줘" -y

셀렉터를 찾고 시나리오를 짜는 건 에이전트가.

4. 플로우 재사용

한 번 실행한 테스트는 플로우로 저장. -f 옵션으로 재사용:

expect-cli -f login-flow

5. 멀티 에이전트 지원


워크플로우 예시

PR 전 테스트

# PR 올리기 전에 브랜치 변경사항 테스트
expect-cli --target branch -m "test all new features" -y

개발 중 빠른 테스트

# 방금 작성한 코드 테스트
expect-cli --target unstaged -m "test the form validation"

CI/CD 통합

# CI에서 실행
NO_TELEMETRY=1 expect-cli --target branch -y

기존 E2E 테스트와의 차이

항목기존 E2Eexpect-cli
작성수동으로 셀렉터, 시나리오 작성자연어로 지시
유지보수코드 변경 시 셀렉터 업데이트에이전트가 자동 적응
실행헤드리스 브라우저실제 브라우저
디버깅로그, 스크린샷실시간 시각 확인
비용작성 시간API 호출 비용

언제 유용한가

적합한 경우:

⚠️ 주의할 경우:


시작하기

# 설치 및 초기화
npx -y expect-cli@latest init

# 데모 체험
# https://expect.dev

마치며: 테스트 작성에서 테스트 지시로

expect-cli는 테스트를 “작성”하는 게 아니라 “지시”하는 것으로 바꾼다.

여전히 정밀한 회귀 테스트는 기존 방식이 필요하다. 하지만:

이런 상황에서는 AI 에이전트에게 맡기는 게 훨씬 효율적일 수 있다.


🔗 관련 정보

이전
Claude Code Game Studios: Claude Code를 게임 개발 스튜디오로
다음
Claude Code Auto Mode: 권한 승인 없이 안전하게 작동하는 방법