Adds one time module setup and teardown support to QUnit
JavaScript CSS
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
prismjs
test
.gitignore
.jshintrc
.travis.yml
Gruntfile.js
History.md
LICENSE
README.md
bower.json
complexity.json
index.html
jshint.json
package.json
qunit-once.js

README.md

qunit-once

QUnit plugin that adds setupOne and teardownOnce to modules

Test page

NPM

Build status dependencies devdependencies

endorse

Available through bower and npm as qunit-once.

Tested in the browser by QUnit and under nodejs by qunit-node. Safe to use with gt, which includes setupOnce and teardownOnce already.

API

QUnit.module('Example', {
  setupOnce: function () {
    // runs once before anything else in the module
  },
  setup: function () {
    // runs before each unit test
  },
  teardown: function () {
    // runs after EACH unit test in this module
  },
  teardownOnce: function () {
    // runs once after all unit tests finished (including teardown)
  }
});

Use

install

Include qunit-once.js after qunit.js in HTML

<script src="http://code.jquery.com/qunit/qunit-1.12.0.js"></script>
<script src="qunit-once.js"></script>
<script src="tests.js"></script>

Or install qunit-once via npm install qunit-once --save-dev under node.

Write unit tests

  // tests.js
  var counter = 0;

  QUnit.module('Example', {
    setupOnce: function () {
      counter = 1;
    },
    setup: function () {
      counter += 1;
    }
  });

  QUnit.test('first', function () {
    QUnit.equal(counter, 2, 'setupOnce followed by setup');
    counter = 0;
  });

  QUnit.test('second', function () {
    QUnit.equal(counter, 1, 'first test followed by setup');
  });

Run under node using node-qunit or gt

npm install -g qunit
qunit -d qunit-once.js -c tests.js -t tests.js

You don't need to include this module when running with gt, it already supports setupOnce and teardownOnce methods.

Related

Run QUnit module setup once, Testing code with async setup, qunit-promises

Small print

Author: Gleb Bahmutov © 2013 @bahmutov

License: MIT - do anything with the code, but don't blame me if it does not work.

Support: if you find any problems with this module, email / tweet / open issue on Github