A minimal end-to-end test framework built with:
| Tool | Purpose | Dev Mode | Build Mode |
|---|---|---|---|
| CucumberJS | Gherkin-style .feature scenarios |
✅ via --import |
✅ compiled |
| Playwright | Browser automation (Chromium by default) | ✅ | ✅ |
| TypeScript | Strong typings for steps and support code | ✅ | ✅ tsc compilation |
| ts-node | Run .ts without building |
✅ used during npm test |
❌ |
| tsc | Compile to /dist for reports/CI |
❌ | ✅ |
| multiple-cucumber-html-reporter | Generates HTML results | ✅ executed after run | ✅ |
.
├── features/ # Gherkin scenarios
│ └── ui/login.feature
├── src/
│ ├── steps/ui.steps.ts # Step definitions
│ ├── support/hooks.ts # Hooks (before/after)
│ └── generate-report.ts # HTML report generator
├── reports/ # Generated HTML reports
├── results/ # Raw cucumber JSON output
├── playwright.config.ts
├── tsconfig.json
├── package.json
npm installPlaywright browsers install (only once):
npx playwright installRuns directly using ts-node:
npm testSmart fallback: if built version exists → use it. Otherwise → run via ts-node.
npm run report
npm run build
npm run report