Currently at 1.23.1
The 1.x releases up until this point have already provided the 2.0 API (initially as a front for the old code and gradually refactored to be "real").
The following functionality that was deprecated in QUnit 1.x have been removed in QUnit 2.0:
- Global assert methods – Use assert.equal on the contextual assert object (parameter to QUnit.test callback), not global function equal().
- Global test suite method – Use QUnit.test and QUnit.module, not global functions module() or test().
- Static control flow methods – Use assert.async() or return a promise from QUnit.test, don't use static QUnit.stop(), QUnit.asyncTest(), or QUnit.start().
- Static push method - Use this.pushResult inside an assertion method, not QUnit.push.
- Test assertion counts - Remove the assertCount parameter from any QUnit.test() call. If needed, use assert.expect() instead.
- Event listener – Use QUnit.someEventName( handler ) instead of assigning a function directly, like QUnit.someEventName = handler.
The deprecated features in the above list have been removed in the 2.0 release. They will have to be migrated before the upgrade.
Here's an (incomplete) list of some interesting new features available since QUnit 2.0:
- Core: Improved async handling.
- Core: Improved performance of built-in assertion methods.
- Core: Support for nested modules (sub-module grouping), per-test and per-module hooks (before/beforeEach).
- Assert: Add assert.verifySteps.
- Assert: Add assert.step.
- Assert: Add assert.timeout for setting per-test timeout durations.
- CLI: Introduce a new QUnit CLI
- .. more at https://github.com/qunitjs/qunit/blob/2.4.0/History.md