Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tape-testing/testling
unit tests in all the browsers
https://github.com/tape-testing/testling
Last synced: 9 days ago
JSON representation
unit tests in all the browsers
- Host: GitHub
- URL: https://github.com/tape-testing/testling
- Owner: tape-testing
- License: mit
- Created: 2011-05-25T07:59:10.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2024-06-21T19:53:49.000Z (5 months ago)
- Last Synced: 2024-08-01T12:18:21.363Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 1.31 MB
- Stars: 353
- Watchers: 12
- Forks: 40
- Open Issues: 17
-
Metadata Files:
- Readme: readme.markdown
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# testling
Run [testling-ci](http://ci.testling.com) tests locally.
# example
write a test:
``` js
var test = require('tape');test('beep boop', function (t) {
t.plan(2);
t.equal(1+1, 2);
t.ok(true);
});
```run your test in a local headless browser:
```
$ browserify example/test.js | testlingTAP version 13
# beep boop
ok 1 should be equal
ok 2 (unnamed assert)1..2
# tests 2
# pass 2# ok
```with an exit code of 0 for successes and non-zero for failures like a good unix
citizenOnce you have a `package.json` with a configured `"testling"` field, you can just
type:```
$ testling
```to run all your tests locally just like they will be run on
[testling-ci](https://ci.testling.com). This includes mocha harnesses, scripts,
and files parameters.# usage
```
usage: testling {DIRECTORY|-} {OPTIONS}If there (is no DIRECTORY and stdin is a tty) or the DIRECTORY is "-",
javascript will be read from stdin and executed.Otherwise, DIRECTORY (or the $CWD) will be checked for a package.json with a
testling field.OPTIONS are:
--html Instead of launching a server, show the generated html.
--no-show Don't render the console.log() output to the document body.
-u Instead of launching a browser, print the url to visit so you can
open the browser yourself.-x Launch a browser with an explicit command. By default, chrome or
firefox is launched by searching your $PATH.--host Set up the testling url on a specific hostname. Default: localhost
--port Set up the testling url on a specific port
```# testling field
[Read more about how the package.json "testling" field works.](doc/testling_field.markdown)
# code coverage
To compute code coverage, just use the
[coverify](https://npmjs.org/package/coverify)
transform with `-t coverify` when you run browserify.[coverify](https://npmjs.org/package/coverify) writes coverage data with
console.log(), so you can pipe the output of testling through to the `coverify`
command to parse the results and give human-readable output:```
$ browserify -t coverify test.js | testling | coverifyTAP version 13
# beep boop
ok 1 should be equal1..1
# tests 1
# pass 1# ok
# /home/substack/projects/coverify/example/test.js: line 7, column 16-28
if (err) deadCode();
^^^^^^^^^^^# /home/substack/projects/coverify/example/foo.js: line 3, column 35-48
if (i++ === 10 || (false && neverFires())) {
^^^^^^^^^^^^```
The exit code of coverify is non-zero when there are unreachable expressions.
# dependencies
Make sure you have [PhantomJS](https://github.com/ariya/phantomjs) installed; this is the headless browser that testling will run your tests in if you are not using the `-u` option.
# install
First, install `browserify` globally so that the `testling` command can find it
when there is no `browserify` in `./node_modules/.bin`:```
npm install -g browserify
```then do:
```
npm install -g testling
```# license
MIT
![attack of the testlings!](https://web.archive.org/web/20151126095557if_/http://substack.net/images/browsers/war_of_the_browsers.png)