-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
103 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
<div align="center"> | ||
|
||
[![Continuous integration](https://github.com/qunitjs/qtap/actions/workflows/CI.yaml/badge.svg)](https://github.com/qunitjs/qtap/actions/workflows/CI.yaml) | ||
[![Tested with QUnit](https://qunitjs.com/testedwith.svg)](https://qunitjs.com/) | ||
[![npm](https://img.shields.io/npm/v/qtap.svg?style=flat)](https://www.npmjs.com/package/qtap) | ||
|
||
# QTap | ||
|
||
_Run JavaScript unit tests in real browsers, real fast._ | ||
|
||
</div> | ||
|
||
|
||
## Getting started | ||
|
||
1. Install QTap: | ||
``` | ||
npm install --save-dev qtap | ||
``` | ||
2. Run your tests: | ||
``` | ||
npx qtap test/index.html | ||
``` | ||
3. There's no step 3! | ||
|
||
## Features | ||
|
||
* **Framework Agnostic** | ||
Use any test framework, whether QUnit, Mocha, Jasmine, Jest, Tape, or [anything else via a simple TAP plugin](https://testanything.org/producers.html#javascript). | ||
|
||
* **Anywhere** | ||
- Cross-platform on Linux, Mac, and Windows. | ||
- Built-in support for headless and local browsers (including Firefox, Chromium, Chrome, Edge, and Safari). | ||
- Run remotely in real browsers on real mobile devices and tablets. | ||
- Run on Android or iOS via cloud providers like [BrowserStack](https://www.browserstack.com/) and [SauceLabs](https://saucelabs.com/). | ||
|
||
* **Simplicity** | ||
- No configuration files. | ||
- No adapters or changes to how you write your tests. | ||
- No installation wizard. | ||
- No plugins or other packages required for most uses. | ||
|
||
* **Speed** | ||
TODO - benchmarks. | ||
|
||
* **Real Debugging** | ||
- Retreive console errors, uncaught errors, and unhandled Promise rejections from the browser directly in your build output. | ||
- Instantly debug your tests locally in a real browser of your choosing with full access to browser DevTools to set breakpoints, measure performance, step through function calls, measure code coverage, and more. | ||
- No imposed bundling or transpilation. Only your unchanged source code or production bundler of choice, running as-is. | ||
- No need to inspect Node.js or attach it to an incomplete version of Chrome DevTools. | ||
|
||
* **Real Browsers** | ||
- No need to support yet another "browser" just for testing (jsdom emulation in Node.js). | ||
- No Selenium or WebDriver to install or update (e.g. chromedriver or geckodriver). | ||
- No downloading large binaries of Chrome (e.g. Puppeteer). | ||
- No patched versions of browsers (e.g. Playwright). | ||
- No Docker containers. | ||
|
||
* **Continuous Integration** | ||
GitHub, Jenkins, Travis, Circle, you can run anywhere. | ||
|
||
* **Ecosystem** | ||
Your test framework likely already supports TAP. | ||
|
||
When you enable TAP in your frontend unit tests or backend Node.js tests, a door opens to an ecosystem of test runners, output formatters, and other [tools that consume the TAP protocol](https://testanything.org/consumers.html). | ||
|
||
## Prior art | ||
|
||
QTap was inspired by [Airtap](https://github.com/airtap/airtap) and [testling](https://github.com/tape-testing/testling). It may also be an alternative to [Testem](https://github.com/testem/testem/), [Web Test Runner](https://modern-web.dev/docs/test-runner/overview/), [TestCafé](https://testcafe.io/), [Karma Runner](https://github.com/karma-runner/) (including Testacular, [karma-tap](https://github.com/bySabi/karma-tap), and [karma-qunit](https://github.com/karma-runner/karma-qunit/)), [grunt-contrib-qunit](https://github.com/gruntjs/grunt-contrib-qunit), [wdio-qunit-service](https://webdriver.io/docs/wdio-qunit-service/), and [node-qunit-puppeteer](https://github.com/ameshkov/node-qunit-puppeteer). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters