gunit
v1.2.1
Published
Gets coverage or dies trying. CommonJS runtime for Gjs
Downloads
1
Readme
gunit
Extracts require()
from Acme Commander, to complement the CommonJS runtime in development and testing of GLib-heavy apps. Goal differs from Cgjs, not to replicate Node APIs, but to gather code coverage with Gjs built-in feature and, outside tests, give you the convenient module.hot.accept
.
Parallel tests
Inspired by ava:
Runs tests concurrently
No implicit globals
Promise support
Having tests run concurrently forces you to write atomic tests, meaning tests don't depend on global state or the state of other tests, which is a great thing!
Test syntax
const { test } = require("gunit");
test("passes after awaiting promise", async t => {
await Promise.resolve();
t.pass();
});
test("compares values", t => {
t.is(1 + 1, 2);
});
Usage
Make sure you have all dependencies, including GNOME JavaScript v1.52 or newer, and lcov:
# Ubuntu 17.10
sudo apt update && sudo apt install bash coreutils gir1.2-gtk-3.0 gjs lcov npm
Then install with npm:
npm install --save-dev gunit
Add a script to your package.json
:
{
"name": "awesome-package",
"scripts": {
"test": "gunit"
},
"devDependencies": {
"gunit": "^1.0.1"
}
}
Run it:
npm test
Will find and load *.test.js
in your app directory.
CLI
$ gunit --help
Usage: gunit [OPTION]... [LAST_DIRNAME_WHITELIST]...
Find **/*.test.js and run with GNOME JavaScript.
-s, --serial disable concurrency
-h, --help display this help and exit
License
MIT