Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
The minimal unit testing library.
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


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.