Skip to content
The minimal unit testing library.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Makefile Added support for selecting individual tests Dec 25, 2011


Build Status

The minimal unit testing library.

Why yet another test library?

I wanted something simple, that just does unit tests (no async) and where each test is a standalone UNIX program. Now it exists.

How do I run async tests?

Currently there is only one sane way: Do not use a framework. Instead use one file per test.

If that becomes an issue, you should write more unit tests. (It is not a unit test if it does I/O).


npm install utest


Running a test with utest is very simple:

var test   = require('utest');
var assert = require('assert');

test('Number#toFixed', {
  'returns a string': function() {
    assert.equal(typeof (5).toFixed(), 'string');

  'takes number of decimal places': function() {
    assert.equal((5).toFixed(1), '5.0');

  'does not round': function() {
    assert.equal((5.55).toFixed(1), '5.5');

It is also possible to define a before/after method:

var test   = require('utest');
var assert = require('assert');

test('Date', {
  before: function() { = new Date;

  after: function() { = null;

  'lets you manipulate the year': function() {;
    assert.equal(, 2012);

  'can be coerced into a number': function() {
    assert.equal(typeof, 'number');

Last but not least, you can run individual tests by prefixing them with an exclamation mark. This is useful when putting debug statements into the subject under test:

var test   = require('utest');
var assert = require('assert');

test('MyTest', {
  '!will be executed': function() {
    // ...

  'will not be exectuted': function() {
    // ...

Future Features

I want to keep this library as minimal as possible, but I do consider the addition of the following features:

  • Nested test cases
  • TAP output (if TAP=1 in the environment, switch to TapReporter class)
  • Leak detection (automatically add a final test that fails if there are global leaks).


This module is licensed under the MIT license.

Something went wrong with that request. Please try again.