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


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


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


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


A modified browser that helps in responsive web development.


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


? 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


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

Raathi Kugarajan
⚡ Zero config GUI for Jest


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


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


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


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


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


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


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


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


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

Smooth Code
Run your tests using 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


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


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


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

Adam Schwartz
Console.log with style.


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(


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


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


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


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


jQuery Mockjax: Ajax request mocking 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


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

Michele Bertoli
Automagically generate tests from errors


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


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


GrowthBook - The Open Source A/B Testing Platform


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


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


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


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


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


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


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


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


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


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.


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

Web Components
Custom Element + Framework Interoperability Tests.


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


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


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


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


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

WebdriverIO Boneyard
Regression testing tool for WebdriverIO v4


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


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


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


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


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

Smashtest core and packages


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


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


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


? 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


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

Paul Miller
Browser console methods 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


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.


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


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


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 --


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 and is jasmine-core in npm. Contents T


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


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

Joshua Hull
Integration testing ftw


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.


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


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


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

Babel Utils
Utilities for testing babel plugins


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


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.

Zach Leatherman
Benchmark sites over time


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.


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


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


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


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.


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


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

Koen Vendrik
‍ Run Jest in the browser.


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


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


? 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

QUnit runner for nodejs


QUnit testing framework for Node.js Features cli testrunner api test coverage via istanbul tests inside of one testfile run synchronous, but every testf


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


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.


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


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


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

Comparison of 10 frontend JavaScript frameworks


Comparison of 10 frontend JavaScript frameworks


A customizable test framework to build your own test frameworks


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


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


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


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


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


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


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


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


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


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


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