Skip to content

Latest commit

 

History

History
165 lines (126 loc) · 3.31 KB

File metadata and controls

165 lines (126 loc) · 3.31 KB

🧪 테스트 가이드

📦 설치

npm install

🚀 테스트 실행

기본 테스트 실행

npm test

Watch 모드 (파일 변경 시 자동 실행)

npm run test:watch

커버리지 리포트 생성

npm run test:coverage

📊 테스트 결과 확인

1. 터미널에서 확인

테스트 실행 후 터미널에서 결과를 바로 확인할 수 있습니다.

2. HTML 리포트 (자동 생성)

테스트 실행 시 자동으로 test-report.html이 생성됩니다.

브라우저에서 열기:

open test-report.html  # macOS
# 또는
xdg-open test-report.html  # Linux
# 또는 브라우저에서 직접 파일 열기

3. 시각적 대시보드 (추천! 🎨)

더 보기 좋은 커스텀 대시보드:

# 브라우저에서 test-viewer.html 열기
open test-viewer.html  # macOS

또는 HTTP 서버로 실행:

python3 -m http.server 8000
# 브라우저에서 http://localhost:8000/test-viewer.html 접속

📁 테스트 구조

__tests__/
├── setup.js                  # 테스트 환경 설정
├── diff-tree-full.test.js   # 전체 트리 비교 테스트 (14개)
├── diff-flattened.test.js   # 요약 테스트 (13개)
└── diff-only.test.js         # 변경사항만 보기 테스트 (9개)

총 36개 테스트

🎯 테스트 범위

1. 전체 트리 비교 (Full Tree Diff)

  • ✅ 파일 로드 검증
  • ✅ diff 결과 생성 확인
  • ✅ 버전 변경 감지 (1.4.21.5.0)
  • ✅ depth 계산 정확성
  • ✅ 파싱 로직 검증
  • ✅ 엣지 케이스 처리

2. 요약 (Flattened Diff)

  • ✅ Added/Removed/Changed 분류
  • ✅ 기존 의존성 필터링 (모듈 추가 시)
  • ✅ 신규 의존성만 Added에 포함
  • ✅ 중복 제거 로직
  • ✅ 개수 검증

3. 변경사항만 보기 (Only Diff)

  • ✅ 공백 라인 제거
  • ✅ +/- 라인만 필터링
  • ✅ 전체 diff와 비교

🔧 새로운 테스트 추가하기

__tests__/ 폴더에 .test.js 파일 추가:

const fs = require('fs');
require('./setup');

describe('새로운 기능 테스트', () => {
  test('테스트 설명', () => {
    const result = dependencyTreeDiffEnhanced('before', 'after');
    expect(result).toBeTruthy();
  });
});

📈 커버리지 목표

현재 목표:

  • Statements: > 80%
  • Branches: > 75%
  • Functions: > 80%
  • Lines: > 80%

🐛 디버깅

테스트 실패 시:

  1. 상세 로그 확인:

    npm test -- --verbose
  2. 특정 파일만 실행:

    npm test -- diff-tree-full.test.js
  3. 특정 테스트만 실행:

    test.only('이 테스트만 실행', () => {
      // ...
    });

📝 CI/CD 통합

GitHub Actions에서 자동 실행:

name: Tests
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '18'
      - run: npm install
      - run: npm test

🎨 테스트 대시보드 스크린샷

Test Dashboard

  • 📊 실시간 통계
  • 🎯 테스트별 상태
  • ⏱️ 실행 시간
  • 📈 성공/실패 비율

문의: 테스트 관련 문의는 Issues에 등록해주세요.