qunit-once

QUnit plugin for running module setup and teardown once

qunit-once

QUnit plugin that adds setupOne and teardownOnce to modules

Test page

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.

QUnit.module('Example', {
  setupOncefunction () {
    // runs once before anything else in the module 
  },
  setupfunction () {
    // runs before each unit test 
  },
  teardownfunction () {
    // runs after EACH unit test in this module 
  },
  teardownOncefunction () {
    // runs once after all unit tests finished (including teardown) 
  }
});

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.

  // tests.js 
  var counter = 0;
 
  QUnit.module('Example', {
    setupOncefunction () {
      counter = 1;
    },
    setupfunction () {
      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');
  });
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.

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

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