- Notifications
You must be signed in to change notification settings - Fork0
uvu is an extremely fast and lightweight test runner for Node.js and the browser
License
ArtskydJ/uvu
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
UltimateVelocity,Unleashed

- Superlightweight
- Extremelyperformant
- Individually executable test files
- Supports
async
/await
tests - Supports native ES Modules
- Browser-Compatible
- Familiar API
$ npm install --save-dev uvu
Check out
/examples
for a list of working demos!
// tests/demo.jsimport{test}from'uvu';import*asassertfrom'uvu/assert';test('Math.sqrt()',()=>{assert.is(Math.sqrt(4),2);assert.is(Math.sqrt(144),12);assert.is(Math.sqrt(2),Math.SQRT2);});test('JSON',()=>{constinput={foo:'hello',bar:'world'};constoutput=JSON.stringify(input);assert.snapshot(output,`{"foo":"hello","bar":"world"}`);assert.equal(JSON.parse(output),input,'matches original');});test.run();
Then execute this test file:
# via `uvu` cli, for all `/tests/**` files$ uvu -r esm tests# via `node` directly, for file isolation$ node -r esm tests/demo.js
Note: The
-r esm
is for legacy Node.js versions.Learn More
Theuvu/assert
module iscompletely optional.
In fact, you may use any assertion library, including Node's nativeassert
module! This works becauseuvu
relies on thrown Errors to detect failures. Implicitly, this also means that any uncaught exceptions and/or unhandledPromise
rejections will result in a failure, which is what you want!
The main entry from which you will import thetest
orsuite
methods.
A collection of assertion methods to use within your tests. Please note that:
- these are browser compatible
- these arecompletely optional
via the
/bench
directory with Node v10.21.0
Below you'll find each test runner with two timing values:
- the
took ___
value is the total process execution time – from startup to termination - the parenthesis value (
(___)
) is the self-reported execution time, if known
Each test runner'sstdout
is printed to the console to verify all assertions pass.
Said output is excluded below for brevity.
~> "ava" took 594ms ( ??? )~> "jest" took 962ms (356 ms)~> "mocha" took 209ms ( 4 ms)~> "tape" took 122ms ( ??? )~> "uvu" took 72ms ( 1.3ms)
MIT ©Luke Edwards