Receber por email
← Voltar para o catálogo

setup-test

프론트엔드 프로젝트에 테스트 환경을 초기 세팅합니다. 프로젝트 구조를 자동 감지하여 jest/vitest 설정, customRender, MSW 등을 구성합니다.

12estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add ggombee/code-forge

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/setup-test/svg)](https://www.skillteca.com.br/skills/setup-test)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

/setup-test

테스트 환경이 없는 프로젝트에 초기 세팅을 수행합니다.

실행 워크플로우

Step 1: 프로젝트 분석

다음을 자동 감지합니다:

  1. 프레임워크 감지:
  2. next.config.* -> Next.js
  3. vite.config.* -> Vite
  4. react-scripts in package.json -> CRA
  5. 기타 -> 일반 React
  1. 기존 테스트 환경 확인:
  2. jest.config. / vitest.config. 존재 여부
  3. package.json에 test 스크립트 존재 여부
  4. @testing-library/react 설치 여부
  5. MSW 설치 여부
  1. 상태 관리 / Provider 구조 분석:
  2. _app.tsx / _app.js 읽기 -> Provider 트리 파악
  3. Provider/ 디렉토리 탐색
  4. package.json에서 jotai, recoil, zustand, react-query 등 확인
  1. 사용자에게 분석 결과 보고 후 진행 여부 확인:

``` 프로젝트 분석 결과:

  • 프레임워크: Next.js 13 (Pages Router)
  • 테스트 러너: 미설정 -> jest 권장
  • 상태 관리: jotai, react-query
  • Provider: QueryClientProvider, JotaiProvider

다음 항목을 세팅하겠습니다:

  1. jest + @testing-library/react + MSW 패키지 설치
  2. jest.config.js 생성
  3. jest.setup.js 생성
  4. customRender 유틸리티 생성
  5. MSW 핸들러 구조 생성
  6. package.json test 스크립트 추가

진행할까요? ```

Step 2: 패키지 설치

jest 기반 (Next.js, CRA):

yarn add -D jest @testing-library/react @testing-library/jest-dom @testing-library/user-event jest-environment-jsdom @types/jest msw identity-obj-proxy

Next.js 프로젝트 추가:

yarn add -D jest-next-dynamic

vitest 기반 (Vite):

yarn add -D vitest @testing-library/react @testing-library/jest-dom @testing-library/user-event jsdom @types/jest msw

Step 3: 설정 파일 생성

jest.config.js (Next.js 예시):

  • moduleNameMapper: path alias (@/, @shared/ 등) 매핑
  • testEnvironment: jsdom
  • setupFilesAfterSetup: jest.setup.js
  • transformIgnorePatterns: node_modules 중 ESM 모듈 처리
  • moduleFileExtensions: js, jsx, ts, tsx

jest.setup.js:

  • @testing-library/jest-dom import
  • 전역 mock 설정 (next/router, next/dynamic, SVG, CSS 등)
  • MSW server setup/teardown
  • window.matchMedia mock

Step 4: customRender 생성

__tests__/utils/customRender.tsx (또는 src/test/customRender.tsx):

프로젝트의 Provider 구조를 분석하여 생성합니다:

  • QueryClientProvider (react-query 사용 시)
  • RecoilRoot (recoil 사용 시)
  • JotaiProvider (jotai 사용 시, 필요한 경우)
  • FormProvider (react-hook-form 사용 시)
  • 기타 프로젝트 커스텀 Provider

Step 5: MSW 핸들러 구조 생성

src/mocks/
├── server.ts          # MSW setupServer
├── handlers/
│   └── index.ts       # 핸들러 모음
└── browser.ts         # (선택) 브라우저용 setupWorker

Step 6: package.json 스크립트 추가

{
  "scripts": {
    "test": "jest --watchAll",
    "test:ci": "jest --ci --coverage"
  }
}

Step 7: 검증

간단한 샘플 테스트를 실행하여 환경이 올바르게 구성되었는지 확인합니다:

yarn test --watchAll=false

주의사항

  • 이미 테스트 환경이 구성된 프로젝트에서는 기존 설정을 덮어쓰지 않고, 누락된 부분만 보완합니다.
  • path alias 매핑은 프로젝트의 tsconfig.json / jsconfig.json을 참고하여 생성합니다.
  • 패키지 매니저는 프로젝트의 lock 파일을 확인하여 자동 결정합니다 (yarn.lock -> yarn, package-lock.json -> npm, pnpm-lock.yaml -> pnpm).
Compartilhar X LinkedIn