uvu
    TypeScript icon, indicating that this package has built-in type declarations

    0.5.3 • Public • Published
    uvu
    uvu is an extremely fast and lightweight test runner for Node.js and the browser
    Ultimate Velocity, Unleashed

    example with suites

    Features

    • Super lightweight
    • Extremely performant
    • Individually executable test files
    • Supports async/await tests
    • Supports native ES Modules
    • Browser-Compatible
    • Familiar API

    Install

    $ npm install --save-dev uvu
    

    Usage

    Check out /examples for a list of working demos!

    // tests/demo.js
    import { test } from 'uvu';
    import * as assert from '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', () => {
      const input = {
        foo: 'hello',
        bar: 'world'
      };
    
      const output = 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

    View the uvu CLI documentation

    Assertions

    The uvu/assert module is completely optional.

    In fact, you may use any assertion library, including Node's native assert module! This works because uvu relies on thrown Errors to detect failures. Implicitly, this also means that any uncaught exceptions and/or unhandled Promise rejections will result in a failure, which is what you want!

    API

    Module: uvu

    View uvu API documentation

    The main entry from which you will import the test or suite methods.

    Module: uvu/assert

    View uvu/assert API documentation

    A collection of assertion methods to use within your tests. Please note that:

    • these are browser compatible
    • these are completely optional

    Benchmarks

    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's stdout 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)
    

    License

    MIT © Luke Edwards

    Install

    npm i uvu

    DownloadsWeekly Downloads

    465,018

    Version

    0.5.3

    License

    MIT

    Unpacked Size

    47.7 kB

    Total Files

    19

    Last publish

    Collaborators

    • lukeed