CodeceptJS  by codeceptjs

E2E testing framework for NodeJS

created 9 years ago
4,184 stars

Top 11.9% on sourcepulse

GitHubView on GitHub
Project Summary

CodeceptJS is an end-to-end (E2E) testing framework for Node.js, designed to simplify test creation and maintenance for web and mobile applications. It targets developers and QA engineers who need a user-centric, synchronous-feeling testing experience, abstracting away the complexities of underlying browser automation tools.

How It Works

CodeceptJS provides a unified, synchronous-like API for various browser and mobile automation backends, including Playwright, Puppeteer, WebDriver, TestCafe, Appium, and Detox. It uses a "Helper" module system, where each helper manages interactions with a specific automation tool. Tests are written using a domain-specific language (DSL) via the I object, allowing for readable, user-perspective scenarios. This approach simplifies test writing and maintenance by abstracting away asynchronous operations and tool-specific APIs.

Quick Start & Requirements

  • Install: npm i codeceptjs --save
  • Initialize: npx codeceptjs init
  • Run: npx codeceptjs run
  • Requires Node.js version 12+.
  • Official Docs: https://codecept.io/

Highlighted Details

  • Supports multiple backends: Playwright, Puppeteer, WebDriver, TestCafe, Appium, Detox.
  • AI-powered features for test assistance and healing.
  • Scenario-driven BDD-style testing with native ES6 support.
  • Interactive debugging shell for in-test command execution.
  • CLI generators for tests, page objects, and step objects.

Maintenance & Community

  • MIT License.
  • Active community, with contributors acknowledged.
  • Links to official documentation and examples are available.

Licensing & Compatibility

  • MIT License.
  • Permissive, allowing for commercial use and integration with closed-source projects.

Limitations & Caveats

The framework relies on external helpers for browser automation, meaning the stability and feature set are dependent on the chosen helper's implementation. While it aims for synchronous feel, complex asynchronous scenarios might still require careful handling.

Health Check
Last commit

3 days ago

Responsiveness

1 week

Pull Requests (30d)
18
Issues (30d)
3
Star History
23 stars in the last 90 days

Explore Similar Projects

Starred by Jared Palmer Jared Palmer(Ex-VP of AI at Vercel; Founder of Turborepo; Author of Formik, TSDX) and Travis Fischer Travis Fischer(Founder of Agentic).

evalite by mattpocock

1.6%
770
TypeScript testing framework for LLM apps
created 8 months ago
updated 1 week ago
Feedback? Help us improve.