The-DevOps-Daily/devops-daily

feat: Add visual regression testing

Open

#543 创建于 2025年12月2日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)TypeScript (392 fork)github user discovery
enhancementgood first issuehacktoberfest

仓库指标

Star
 (1,087 star)
PR 合并指标
 (PR 指标待抓取)

描述

Description

Implement visual regression testing to catch unintended UI changes in components and pages.

Problem

  • No automated visual testing
  • CSS changes can break layouts unintentionally
  • Component styling regressions go unnoticed until manual review
  • Difficult to catch subtle visual bugs
  • Animations and theme changes need visual verification

Benefits

  • Catch visual regressions before production
  • Ensure consistent UI across changes
  • Build confidence in refactoring
  • Document visual states of components
  • Faster PR reviews

Tools to Consider

Option 1: Percy (Recommended)

  • Visual testing platform
  • GitHub integration
  • Automatic PR comments
  • Free for open source
  • URL: https://percy.io

Option 2: Chromatic (Alternative)

  • Built by Storybook team
  • Great Storybook integration
  • Visual testing + component review
  • Free tier available
  • URL: https://www.chromatic.com

Option 3: Playwright Screenshots

  • Self-hosted solution
  • Use Playwright to capture screenshots
  • Compare with pixelmatch library
  • More setup but free and self-contained

Implementation with Percy

# .github/workflows/visual-regression.yml
name: Visual Regression Tests

on:
  pull_request:

jobs:
  percy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '22'
          cache: 'pnpm'
      - run: pnpm install
      - run: pnpm build
      - name: Percy Test
        run: pnpm percy snapshot public/
        env:
          PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}

Pages/Components to Test

  • Homepage
  • Quizzes page and individual quiz
  • Games page and individual games
  • Post detail page
  • Guide detail page
  • Search results
  • Navigation header
  • Footer
  • Dark mode versions of all pages

Acceptance Criteria

  • Choose visual testing tool (Percy/Chromatic/Playwright)
  • Set up visual testing infrastructure
  • Add baseline screenshots for key pages
  • Add baseline screenshots for key components
  • Configure GitHub Actions workflow
  • Set up automatic PR comments
  • Test with actual CSS change
  • Document process in CONTRIBUTING.md
  • Add both light and dark mode baselines
  • Set appropriate diff thresholds

Success Metrics

  • Visual tests run on every PR
  • Catch at least 1 visual regression in first month
  • Review process includes visual diff approval

Files to Create

  • .github/workflows/visual-regression.yml - CI workflow
  • visual-tests/ - Test configuration
  • docs/visual-testing.md - Documentation

贡献者指南