Skip to content
/ PICKL Public

πŸ₯’ Playwright + Cucumber BDD testing framework for learning test automation. Includes comprehensive training exercises, page objects, and step definitions.

License

Notifications You must be signed in to change notification settings

jedau/PICKL

Repository files navigation

PICKL πŸ₯’

CI Security Code Quality Coverage

Playwright Integrated with Cucumber Kickoff Launchpad

PICKL is a modern BDD test automation boilerplate that combines Playwright's powerful browser automation with Cucumber's human-readable Gherkin syntax. Built with TypeScript and ESM, it provides everything you need to write, run, and maintain scalable end-to-end tests.

✨ Key Features

πŸ§ͺ Test Execution

  • Multi-browser Support - Run tests on Chromium, Firefox, and WebKit
  • Flexible Tag-Based Filtering - Organize and run tests using @smoke, @regression, or custom tags
  • Real-time Progress Display - Custom verbose formatter with emoji indicators (⏳ β†’ βœ…/❌/⊘)
  • Built-in Summary - Automatic test execution summary with scenario and step counts
  • Headless & Headed Modes - Debug with visible browsers or run headlessly in CI/CD

πŸ“Š Reporting

  • HTML Reports - Beautiful single-page reports with cucumber-html-reporter
  • Automated PR Comments - Test results automatically posted to pull requests with pass/fail summary
  • Dark Mode Toggle - Built-in light/dark theme switcher with localStorage persistence
  • Custom Favicon - Distinctive pickle emoji πŸ₯’ branding
  • Auto-open Reports - Reports automatically open in your browser after generation
  • JSON Export - Raw test results for CI/CD integration
  • Artifact Retention - Test results, screenshots, and videos stored for 30 days

πŸ› οΈ Developer Experience

  • VS Code Integration - Tasks for running tests from Command Palette
  • Cucumber Language Support - Syntax highlighting, go-to-definition, and autocomplete
  • TypeScript + ESM - Modern JavaScript with full type safety
  • Environment Configuration - Flexible .env file for local customization
  • Unified Test Runner - Single npm test command with CLI flags support

🎯 Quality Assurance

  • ESLint + Prettier - Consistent code formatting and linting with strict quality rules
  • Complexity Limits - Automated checks for cyclomatic complexity, function length, and nesting depth
  • Code Coverage - c8 coverage tracking with 80% threshold enforcement
  • Security Scanning - CodeQL and npm audit for vulnerability detection
  • Page Object Model - Maintainable test structure with reusable page objects
  • Custom World - Shared context across scenarios with automatic browser management
  • Hooks & Formatters - Extensible test lifecycle with custom formatters
  • Git Hooks - Pre-commit quality checks and commit message validation

πŸ“š Documentation

πŸš€ Getting Started

πŸ“– Learning & Training

πŸ“š Reference

🀝 Contributing

οΏ½ Security

οΏ½πŸ”§ Support

πŸš€ Quick Start

# Fork the repository first on GitHub, then clone your fork
git clone https://github.com/YOUR-USERNAME/PICKL.git
cd PICKL

# Install dependencies
npm install

# Run all tests
npm test

# Run smoke tests
npm test -- --tags @smoke

# Run specific feature
npm test -- test/features/login.feature

# Generate report
npm run report

# Clean up artifacts and caches
npm run clean:all

⚠️ Windows Users: Line Ending Configuration

If you're on Windows and encounter ESLint errors about CRLF line endings, configure Git to use LF:

# Configure Git to not convert line endings
git config core.autocrlf false

# Normalize all files in the repository
git add --renormalize .

# Commit the normalized files
git commit -m "chore: normalize line endings to LF"

# Push the changes to your current branch
git push origin HEAD

Why this is needed:

  • PICKL enforces Unix-style line endings (LF) for consistency across platforms
  • .gitattributes and .editorconfig automatically handle this for new files
  • Existing clones need the above commands to normalize their files

πŸ“¦ Tech Stack

  • Playwright v1.56.1 - Browser automation
  • Cucumber v12.2.0 - BDD test framework
  • TypeScript v5.9.3 - Type-safe JavaScript
  • cucumber-html-reporter v7.2.0 - HTML report generation
  • tsx v4.20.6 - TypeScript execution
  • ESLint + Prettier - Code quality tools

About

πŸ₯’ Playwright + Cucumber BDD testing framework for learning test automation. Includes comprehensive training exercises, page objects, and step definitions.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •