unstale

npm / qunit

qunit

What changed in qunit 2 to 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-29.

10 breaking3 new APIs and options3 behavior and defaults5 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

qunit 317 changes

Breaking changes 10

  • QUnit no longer provides a built-in AMD export for the qunit.js file; applications and tests can still be loaded with AMD/RequireJS.

    3.0.0release notes

  • New releases are no longer published to the Bower registry.

    3.0.0release notes

  • The undocumented details.modules[].tests field is removed from the QUnit.begin() event.

    3.0.0release notes

  • Legacy HTML Reporter markup is no longer supported; use <div id="qunit"> instead.

    3.0.0release notes

  • The no-tests condition is now reported as a native error instead of a fake test.

    3.0.0release notes

  • Support for Node.js 10–16 is removed; Node.js 18 or later is required.

    3.0.0release notes

  • Support for PhantomJS is removed.

    3.0.0release notes

  • The undocumented QUnit.dump.HTML property is removed.

    3.0.0release notes

  • The undocumented QUnit.dump.multiline property is removed.

    3.0.0release notes

  • Using an async QUnit.module() callback is now an error instead of a warning.

    3.0.0release notes

New APIs and options 1

  • QUnit adds a native ESM distribution, which Node.js uses automatically when importing with the import keyword.

    3.0.0release notes

Behavior and default changes 1

  • The QUnit global is now exported unconditionally.

    3.0.0release notes

Fixes and other changes 5

  • The after hook receives module context, enabling inheritance between parent and child modules and fixing leaks between the last test and after hooks.

    3.0.0release notes

  • The before hook receives module context, enabling inheritance between parent and child modules and fixing leaks between the last test and after hooks.

    3.0.0release notes

  • The confusing "No tests" message after an early uncaught error is fixed.

    3.0.0release notes

  • Fixes a crash when a global module hook returns a bad thenable.

    3.0.0release notes

  • Fixes a crash when test.only() is used together with module.only().

    3.0.0release notes

qunit 24 changes

New APIs and options 2

  • Introduces QUnit.config.ignoreUnhandledRejections.

    2.26.0release notes

  • The CLI supports using a local script with --reporter.

    2.26.0release notes

Behavior and default changes 2