The "N.U.T.R.A — Node Unit Test Runner Auxiliary" is a simple, extendable module for running unit tests in node.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
src
test
.appveyor.yml
.babelrc
.gitignore
.npmignore
.travis.yml
LICENSE
README.md
app.config.js
index.js
nutra.config.js
package.json

README.md

N.U.T.R.A — Node Unit Test Runner Auxiliary

npm version Coverage Status Build Status Dependency Status devDependency Status

The "nutra" module is a simple, extendable unit test runner for node.

Quickstart

Get the "nutra" module up and running with just a few steps.

1) Install Nutra:
npm install --save-dev nutra

Nutra recommends Node v4+, as lower versions of node are not being officially supported.

2) Install Preset:

Give this one a try, for now.
Nutra requires presets to be installed with NPM v3+ do to its reliance on a flat dependency tree.

3) Add Nutra to NPM Scripts:
{ // package.json
  ...
  "scripts": {
    "test": "nutra --config ./nutra.config.js",
  }
  ...
}
4) Run CLI:
npm run test

Support

Questions About Usage:

For questions about usage (i.e. configuration, plugin development, etc), please post them on StackOverflow and tag it with the keyword "nutra".

Issues:

For bugs and other unexpected behavior, please post them up on the issue section of this GitHub.

Usage:

CLI:

Provide a nutra configuration file:
nutra --config "path/to/nutra.config.js"
The "--config" argument is required Path is relative to the current working directory (cwd).

JS API:
const nutra = Nutra({
  configFile: 'path/to/nutra.config.js', // optional
  files: ['test/specs/**/*.js', 'src/**/*.js']
})
nutra.start()

The "config" argument is required. Config path is relative to the current working directory (cwd).

Configuration Presets:

Configuration Anatomy:

// nutra.config.js
module.exports = function( config ) {
  config.set({

    // The "files" property allows you to specify the location of your app files and specs.
    // It expects an array of globs (https://github.com/isaacs/node-glob) and is always required.
    files: ['test/specs/**/*.js', 'src/**/*.js'],

    // The "absolutePaths" boolean property allows you to specify whether or not all file paths
    // should be treated as absolute. This includes the preprocessor patterns.
    absolutePaths: false,

    // The "frameworks" property allows you to specify nutra framework plugins, this will typically
    // be your test framework (i.e. jasmine, mocha, etc).
    frameworks: ['nutra-jasmine'],

    // The "preprocessors" property allows you to specify nutra preprocessors plugins, this will
    // typically be coverage or transpiling tools (i.e. babel, traceur, typescript, etc).
    preprocessors: {
      'test/specs/**/*.js': ['nutra-babel'],
      'src/**/*.js': ['nutra-babel', 'nutra-coverage']
    },

    // The "reporters" property allows you to specify nutra reporters plugins, this will
    // typically be coverage and other reporting tools.
    reporters: ['nutra-coverage'],

    // The "{{plugin}}Options" property allows you to specify nutra plugin options, this will
    // vary depending on what plugins you are using. An option property for each plugin must
    // be specified (i.e. babelOptions: {}, coverageOptions: {}, etc), but it is not required.
    coverageOptions: {
      dir : './coverage/',
      reporters: [
        { type: 'lcovonly', subdir: '.', file: 'lcov.info' }
      ]
    }
  })
}

Nutra Plugins:

Contributing

Pull requests are always welcome. In lieu of a formal styleguide, please:

  • Take care to maintain the existing coding style.
  • Add unit tests for any new or changed functionality.

Why?

I get a trill from reinventing a simpler, more efficient wheel.