JavaScript Testing Frameworks

? Delightful JavaScript Testing ??‍? Developer Ready: A comprehensive JavaScript testing solution. Works out of the box for most JavaScript projects. ?? Instant Feedback: Fast, interactive watch mode

 37.6k

Documentation | Changelog | Roadmap The web has evolved. Finally, testing has too. Fast, easy and reliable testing for anything that runs in a browser. What is Cypress? Installin

 36.1k

☕️ Simple, flexible, fun JavaScript test framework for Node.js & The Browser ☕️ Links Documentation Release Notes / History / Changes Code of Conduct

 21k

Mock.js Mock.js is a simulation data generator to help the front-end to develop and prototype separate from the back-end progress and reduce some monotony particularly while writing automated tests. The official site: http://m

 17.5k

A modified browser that helps in responsive web development.

 14.9k

Appium Appium is an open source, cross-platform test automation tool for native, hybrid and mobile web and desktop apps. We support simulators (iOS), emulators (Android), and real devices (iOS, Android, Windows, M

 14.6k

? Why this guide can take your testing skills to the next level ? 45+ best practices: Super-comprehensive and exhaustive This is a guide for JavaScript & Node.js reliability from A-Z. It summa

 14.1k

Sinon.JS Standalone and test framework agnostic JavaScript test spies, stubs and mocks (pronounced "sigh-non", named after Sinon, the warrior). Compat

 8.8k
Raathi Kugarajan
⚡ Zero config GUI for Jest

Raathigesh/majestic

Majestic is a GUI for Jest ✅ Run all the tests or a single file ⏱ Toggle watch mode ? Update snapshots ❌ Examine test failures as they happen ⏲ Co

 7.3k

Unmaintained notice: As of December 22nd 2017 this project will no longer be maintained. It's been a fantastic five years, a project that has hopefull

 4.7k

TA.Gui TA.Gui is a tool for non-developers and business users to automate web apps Above video shows a sample automation flow to automate mass account registrations - recording sequence of steps, editing to wait for a few seco

 4.3k

axe-core Axe is an accessibility testing engine for websites and other HTML-based user interfaces. It's fast, secure, lightweight, and was built to se

 4.3k

Tamper Chrome is a Chrome extension that allows you to modify HTTP requests on the fly and aid on web security testing. Tamper Chrome works across all operating systems (including Chrome OS). Want to know how to use Tamper Chrome

 4k

QUnit is a powerful, easy-to-use JavaScript testing framework. It was originally developed for the jQuery project and has since evolved to test any cl

 3.9k

Appium Desktop Appium Desktop is an app for Mac, Windows, and Linux which gives you the power of the Appium automation server in a beautiful and flexible UI. It is a combination of a few Appium-related tools: A graphical

 3.9k

The web-platform-tests Project The web-platform-tests Project is a cross-browser test suite for the Web-platform stack. Writing tests in a way that allows them to be run in all browsers gives browser projects confidence that

 3.6k

Build Status: CodeceptJS Reference: Helpers API Supercharged E2E Testing CodeceptJS is a new testing framework for end-to-end testing with WebDriver (

 3.6k
Smooth Code
Run your tests using Jest & Puppeteer ✨

smooth-code/jest-puppeteer

Jest Puppeteer Run your tests using Jest & Puppeteer ? ✨ npm install jest-puppeteer-preset puppeteer Usage Update your Jest configuration: { "preset": "jest-puppeteer-preset" } Use Puppe

 3.3k

Pa11y Pa11y is your automated accessibility testing pal. It runs accessibility tests on your pages via the command line or Node.js, so you can automat

 3.2k

Got Scripts? Test’em! Unit testing in Javascript can be tedious and painful, but Testem makes it so easy that you will actually want to write tests. F

 2.9k

DOM Testing Library Simple and complete DOM testing utilities that encourage good testing practices. Read the docs | Edit the docs Table of Contents The Problem This Solut

 2.8k
Adam Schwartz
Console.log with style.

adamschwartz/log

Log Console.log with style Demo Features Safely call log (instead of console.log) in any browser. Use markdown syntax for quick formatting: italic — log('this is *italic*') bold — log(

 2.8k

proxyquire Proxies nodejs's require in order to make overriding dependencies during testing easy while staying totally unobtrusive. If you want to stu

 2.7k

Property based testing framework for JavaScript/TypeScript Getting started Hands-on tutorial and definition of Property Based Testing: ? see tutorial. Or directly try it online on o

 2.6k

React Native Testing Library Lightweight React Native testing utilities helping you write better tests with less effort. Appreciation notice: This project is heavily inspired by react-testing-library. Go check i

 2.2k

Puppeteer Cluster Create a cluster of puppeteer workers. This library spawns a pool of Chromium instances via Puppeteer and helps to keep track of jobs and errors. This is helpful if you want to crawl multiple pages or run test

 2.2k

jQuery Mockjax: Ajax request mocking http://github.com/jakerella/jquery-mockjax/ Note that we recently switched the master branch to version 2! There are some minor breaking changes in v2, so if you need an older version, ple

 2.1k

DISCLAIMER This is a very early version of Swip.js. If the app doesn't respond you might have to reload the browser or restart the server. It works best if you create a separate wireless network to connect multiple devices with your sw

 2.1k
Michele Bertoli
Automagically generate tests from errors

MicheleBertoli/react-fix-it

React Fix It Automagically generate tests from errors. ⚠️ This package uses react-component-errors to wrap the lifecycle methods into a try...catch block, which affects the performance of your components. Therefore it sh

 1.9k

Kasaya (beta) A "WYSIWYG" (well, kind of) scripting language and runtime for browser automation Write test scripts using English-like statements. NO coding required to implement those statements. Not depende

 1.9k

GrowthBook - The Open Source A/B Testing Platform

 1.8k

An open-source, on-premise, self-hosted parallelization for cypress tests

 1.7k

A Powerful Tool to Simplify Your AngularTests Spectator helps you get rid of all the boilerplate grunt work, leaving you with readable, sleek and streamlined unit tests. Features ✅ Support for testing

 1.7k

Remote Browser Remote Browser is a library for controlling web browsers like Chrome and Firefox programmatically using JavaScript. You've likely heard of similar browser automation frameworks before, such as Pup

 1.7k

Automating Web Perf measurement with Puppeteer ? Puppeteer is a Node library which provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. This repository has recipes for automati

 1.6k

airtap Test your JavaScript in 800+ browsers. Airtap is an easy way to test your JavaScript in browsers, using a TAP-producing harness like tap or tape. Start testing your code locally in seconds and seamlessly move to

 1.4k

Cavy Cavy is a cross-platform, integration test framework for React Native, by Pixie Labs. Cavy tests allow you to programmatically interact with deeply nested components within your application. Write your tests in pure

 1.3k

Karmatic A simplified zero-configuration wrapper around Karma, Webpack, Jasmine & Puppeteer. Why do I want this? Karma, Webpack and Jasmine are all great. They're all also quite powerful and each highly configur

 1.2k

Perflink JavaScript performance benchmarks that you can share via URL The motivation here was to create a single page app like jsperf – which is commonly used to compare performance characteristics of different Javascript c

 1.1k

Service Mocker Service Mocker is an API mocking framework for frontend developers. With the power of service workers, we can easily set up mocking services without any real servers. It sets developers free from intricate

 1k

jest-in-case Jest utility for creating variations of the same test Example import { add, subtract } from './math'; import cases from 'jest-in-case'; cases('add(augend, addend)', opts => { expect(add(opts.

 963

Announcement: Interested in more advanced team workflows? An easier way to run Optic in real environments? Check out Optic Cloud, now in Beta. Optic u

 927
Web Components
Custom Element + Framework Interoperability Tests.

webcomponents/custom-elements-everywhere

Custom Elements Everywhere ? What is this? Karma tests for each of the major frameworks to see how they handle working with Custom Elements. Installation To install all dependencies and build the

 925

A headless Internet Explorer browser using the .NET WebBrowser Class with a Javascript API running on the V8 JavaScript Engine. The API is coded as a port of PhantomJS. Basically, if you have used phantom before then you already know how

 820

jest-axe Custom Jest matcher for aXe for testing accessibility ⚠️ ✋ This project does not guarantee what you build is accessible. The GDS Accessibility team found that only ~30% of issues are found b

 792

traquer Records and reproduces user's in-page behavior Traquer is a tool that enables you to record a testing session on you web/page/app, than reproduce it, monitor how it performed, create a naïve heatmap, and even automate yo

 728

Sagui is the single development dependency that provides the tooling required to build, test and develop modern JavaScript applications. Its main goal is to kill the need of global CLIs and boilerplates, making a reproducible and e

 676
WebdriverIO Boneyard
Regression testing tool for WebdriverIO v4

webdriverio-boneyard/webdrivercss

WebdriverCSS **Note: WebdriverCSS isn't yet compatible with WebdriverIO v3.0 and is not longer maintained. ** If anyone wants to take ownershipt of th

 624

That feeling you get when you know you can trust your tests Serenity BDD is a library designed to make writing automated acceptance tests easier, and

 591

presents The Accessibility Testing Machine The A11y Machine Note: TheA11yMachine is no longer maintained. The A11y Machine (or a11ym for short, spelled “alym”) is an automated accessibility testing tool which craw

 588

totoro A simple and stable cross-browser testing tool. Latest stable version: v2.0 Change Log 中文版使用文档 0. Features Run in real browsers Support all tes

 568

Jsfuzz: coverage-guided fuzz testing for Javascript Jsfuzz is coverage-guided fuzzer for testing javascript/nodejs packages. Fuzzing for safe languages like nodejs is a powerful strategy for finding bugs like unhandled exception

 554
Smashtest
Smashtest core and packages

smashtestio/smashtest

Smashtest • Generate tests fast What is Smashtest? Smashtest is an open-source tool and language for rapidly generating tests. Greatly speed up your web automated testing by writing tests in a tree-like format. Tr

 514

Welcome to the Hyperledger Caliper project. Caliper is a blockchain performance benchmark framework, which allows users to test different blockchain solutions with predefined use cases, and get a set of performance tes

 502

Svelte Testing Library Simple and complete Svelte testing utilities that encourage good testing practices. Read The Docs | Edit the docs Table of Contents The Problem This Solu

 462

? An easy way to calculate the 'impact' of running a task in Node.JS Coded with ❤️ by Simone Primarosa. Synopsis Sympact runs a script and profiles its execut

 441

zora Fast javascript testing library for nodejs and browsers Gitlab mirror installation npm i --save-dev zora If you are interested in a test runner for Nodejs, checkout pta built on top of zora If you are inter

 438
Paul Miller
Browser console methods polyfill.

paulmillr/console-polyfill/

console-polyfill Browser console polyfill. Makes it safe to do console.log()-s etc always. Usage npm install --save console-polyfill; require('console-polyfill') Or, just include console-polyfill before your scri

 435

react-ab Simple declarative and universal A/B testing component for React. Demo Install npm install react-ab --save or bower install react-ab --save Examples Using Mixpanel.

 431

What is this? This is an extension to an old version of chrome + a custom istanbul reporter. This combo gives you the power to view what JS gets evaluated on any website. Installation Download an old version of c

 425

Burnside Test your entire app, end to end, in pure Javascript Burnside is an easy to use, modular, and extendable End to End (E2E) testing tool. Burnside leverages the flexibility of Javascript and the power of modern Brows

 386

Baretest is an extremely simple JavaScript test runner. It has a tiny footprint, near-instant performance, and a brainless API. It makes testing tolerable. Install npm install --save-dev baretest With pnpm pnpm install --

 385

The Jasmine Module The jasmine module is a package of helper code for developing Jasmine projects for Node.js. The core of jasmine lives at https://github.com/jasmine/jasmine and is jasmine-core in npm. Contents T

 350

React VT React VT presents a live view of the React component structure of your app, along with current state and props. Users can define assertions and test them in real time while interacting with their application. Once the u

 339

? Simple and complete DOM testing playground that encourage good testing practices.

 315
Joshua Hull
Integration testing ftw

joshbuddy/ghostbuster

Ghostbuster Automated browser testing via phantom.js, with all of the pain taken out! That means you get a real browser, with a real DOM, and can do real testing! Installation To install first gem install ghostbuster.

 272

vuex-mock-store Simple and straightforward mock for Vuex v3.x Store Automatically creates spies on commit and dispatch so you can focus on testing your component without executing your store code. Help me keep working

 261

ozzie.flutter Ozzie is your testing friend. Ozzie will take an screenshot during integration tests whenever you need. How it works Add ozzie to your pubspec.yaml as a dev_dependency: dev_dependencies: ozz

 261

jest-chain ? ⛓ Chain Jest matchers together to create one powerful assertion ? Less code duplication ? Chain core and custom matchers together ? E

 258
Babel Utils
Utilities for testing babel plugins

babel-utils/babel-plugin-tester

babel-plugin-tester Utilities for testing babel plugins The problem You're writing a babel plugin and want to write tests for it. This solution This is a fairly simple abstraction to help

 248

Highlights statements that write to stdout when they are executed. Statements that have a Logpoint on them write to stdout when they are executed ;) Shows the text that was written to stdout next to the statement.

 224
Zach Leatherman
Benchmark sites over time

zachleat/speedlify

After you make a fast web site, keep it fast by measuring it over time. Read Use Speedlify to Continuously Measure Site Performance. Created by @zachleat.

 221

Testing utilities that allow you to reuse your stories in your unit tests The problem You are using Storybook for your components and writing tests fo

 219

softest The softest is a test tool for recording browser interactions and generating test scripts, simple and practical. It allows you to get test scripts without writing code. ? Why When I needed a

 215

VueUnit A library for Vue.js that makes it easier to create and unit test components. Easily test props, events, and slots (including named slots) Optionally shallow render components Simulate simple DOM events (clic

 214

DOM Testing Library with ANYTHING Anything you can render to the DOM, you can test with DOM Testing Library. This repo is a bunch of simple examples of using DOM Testing Library to test a Counter component in various frameworks.

 203

Example of Unit Testing on the Browser with JavaScript, Jest and ECMAScript Modules This is an example of how you can run unit tests using Node.js eve

 194

IMPORTANT: You probably don't need this addon. In Ember, since ember-(cli-)qunit 3.X (around late 2017) there is a new testing API that already provides almost identical test helpers from the ones in this addon. This addon was

 184
Koen Vendrik
‍ Run Jest in the browser.

kvendrik/jest-lite

jest-lite Run Jest in the browser. Why create this? Codesandbox allows you to write Jest and execute the tests right in their environment. Getting this to work took a bit of research as Jest is typically meant t

 184

O que é o Lind? Avoid HiPPO. Use Numbers. O Lind é uma ferramenta de teste A/B desenvolvido totalmente com Javascript. Requisitos Para rodar o projeto são necessários: - NODEJS - NPM - Gruntjs Configura

 183

? This project is now maintained over at bevry/testen ? testen Run tests for multiple versions of Node.js in local env. Install You should have nvm

 175
QUnit
QUnit runner for nodejs

qunitjs/node-qunit

QUnit testing framework for Node.js https://qunitjs.com https://github.com/jquery/qunit Features cli testrunner api test coverage via istanbul tests inside of one testfile run synchronous, but every testf

 174

nanobench Simple benchmarking tool with TAP-like output that is easy to parse. npm install nanobench Usage var bench = require('nanobench') bench('sha256 200.000 times', function (b) { var crypto = require('cry

 158

Monkey-type is a minimalistic, customisable typing test, featuring many test modes, an account system to save your typing speed history and user configurable features like themes, a smooth caret and more.

 154

A High-Fidelity Web Archiving Extension for Chrome and Chromium based browsers!

 153

match-json A JavaScript library to test JSON APIs. It is built to test REST API endpoints but, of course, it can used to whatever you want. Install npm install match-json Functionality Match JSON Prim

 151

An Electron-based desktop application to assist in performance monitoring and interdepency visualization of a GraphQL Schema.

 135
Fireship
Comparison of 10 frontend JavaScript frameworks

fireship-io/10-javascript-frameworks

Comparison of 10 frontend JavaScript frameworks

 130

A customizable test framework to build your own test frameworks

 130

browser-launcher Detect the browser versions available on your system and launch them in an isolated profile for automated testing purposes. You can launch browsers headlessly (if you have Xvfb) and set the proxy configuration o

 127

A sensible GraphQL testing tool. Usage $ npm install -g graphicli # (Sorry about the package name!) then send queries with gest (pronounced guest [/ɡest/]). $ gest [options] [quotedQuery | pathToF

 112

endpoint Super simple mock API endpoints for static JSON data $ curl -X PUT http://endpoint.example.com/api/endpoint/add -d '{"name": "my-endpoint", "data": {"hello": "world"}}' { "success": true, "name": "my-endpoint",

 111

frida-wshook frida-wshook is an analysis and instrumentation tool which uses frida.re to hook common functions often used by malicious script files which are run using WScript/CScript. The tool intercepts Windows API functions a

 110

FuzzExMachina FExM simplifies basic fuzzing pipelines. As result of years of practical fuzz testing, it provides a best effort approach able to get running quickly and finding bugs in most applications. Given its fully automated

 103

Lotte Lotte is a headless, automated testing framework built on top of PhantomJS and inspired by Ghostbuster. It adds jQuery-like methods and chaining, more assertion logic and an extensible core. Tests can be written in either J

 97

VBot A visual regression testing library/tool, aims to quickly automate browser-based tests with minimum development overhead. The article describes more details behind the motivation. Features JSON-based tes

 95

FancyTrack Build v1.0.5 FancyTrack - JavaScript error tracking library from FancyGrid team. FancyTrack is light alternative to TrackJS service. Pros and Cons It is free and light. But at the moment it overrides windo

 83

babel-test An opinionated library to make testing babel plugins easier. Why I like to use fixture files instead of snapshots for testing my babel plugins because it's easier to read with proper syntax highlight

 79

_______ ________ ________ ________ _______ ________ ________ ________ |\ ___ \ |\ ____\|\ __ \|\ __ \|\ ___ \ |\ ____\ |\ ____\|\ __ \ \ \ __/|\ \ \___|\ \ \|\ \ \ \|\ \ \ __/|\ \ \___|_\ \ \___|\ \ \|

 77

Kitimat Kitimat is a library for generative, property-based testing in TypeScript. Easy to use: Integrates directly into Jest with zero additional configuration. Asynchronous: Kitimat supports async/await, Promises and d

 68