QUnit 2.25 is out!
Highlights from 2.24.1 and 2.25.0:
🧩 Add display of "early" errors in the HTML Reporter.
✨ New test filter callback, for parallel runners and other cool stuff. Thanks Sebastian Gbudje and @nullvoxpopuli
🐛 Fix bugs in TAP-reporter.
qunitjs.com/blog/2025/12/30/…
QUnit 2.24.0 is out!
Highlights since 2.21:
☑️ New test.if() to conditionally skip.
🏷️ Automatic labels in test.each().
📝 New stack trace formatter for CLI output
✨ There is a new QUnit Blog. You can also follow us on Mastodon or Bluesky.
github.com/qunitjs/qunit/rel…
QUnit 2.21.1 is out!
🐛 Fix bug in stacktrace cleaner.
🐛 Fix bug where a second "Hide passed" click reversed test results.
👉 Add notice about upcoming change in how assert.expect() counts steps for assert.verifySteps().
github.com/qunitjs/qunit/rel…
QUnit 2.21 is out!
☑️ New assert.closeTo() method.
For float-friendly number comparisons.
👉 Deprecate unset timeout for tests longer than 3s.
How to set a timeout? qunitjs.com/api/config/testT…
Credit to JamesMGreene for the original assert-close plugin!
github.com/qunitjs/qunit/rel…
QUnit 2.20.1 is out!
Highlights:
🐛 Fix compat with sinon.useFakeTimers in IE.
🐛 Fix hanging assert.async() after assert.timeout().
Welcome Timmy Willison as new QUnit contributor!
github.com/qunitjs/qunit/rel…
Check out QUnitX by @izelnakri:
github.com/izelnakri/qunitx
It is is the only universal JS/TS test framework that is fast, flexible, zero dependency, and can run your test files interchangably in Node.js, browser, or Deno environments!
One thing that keeps qunitjs.com lean is our approach to search.
Rather than the popular algolia/docsearch widget (~100KB), we use a fast 2KB alternative based on HTML5, progressive enhancement, no FOUC, and backed by self-hosted @typesense.
github.com/Krinkle/typesense…
ALT First place: qunitjs.com,
Lighthouse score is 400 (four times 100),
Page weight is 80 kilobytes.
Second place: webhint.io,
score 391, weight 177 kilobytes.
Third place: eslint.org,
score 391, weight 780 kilobytes.
QUnit 2.19.4 is out! github.com/qunitjs/qunit/rel…
Since 2.19.0:
⏱ Faster assert.deepEqual() .
⏱ Faster config.noglobals.
🐛 Fix memory release from last test.
📝 Improve API examples and fix typos.
Thanks Izel Nakri, Sergey Astapov, and others for their contributions.
QUnit 2.19 is out!
🧩 New --module CLI option. (Thanks Shachar!)
🔍 Improve accessibility and fuzziness of module filter UI.
⏱ Faster setup of the HTML toolbar. (Thanks @mixonic!)
ℹ️ Fix reported runtime to use whole milliseconds.
🐛 Fix various bugs.
github.com/qunitjs/qunit/rel…
QUnit 2.18 is out!
🧩 New assert.propContains for partial object comparison. (Thanks @izelnakri!)
🪝 New global QUnit.hooks beforeEach and afterEach.
🐛 Fix bugs for TypeScript and Windows.
🗜 Shrink npm install size by 7%.
⏱ Faster CLI watch mode.
github.com/qunitjs/qunit/rel…
QUnit 2.17 is out!
🏄♀️ New shortcut to "Rerun all failed tests".
🐛 Fix memory release for skipped module closures.
ℹ️ Improve built-in diagnostics for various failure scenarios.
Thanks to Ben Demboski, @buschtoens, Chris Krycho, and others. #qunitgithub.com/qunitjs/qunit/rel…
QUnit 2.16 is out!
ℹ️ Improved color contrast.
♻️ New test.each() data provider method.
⚙️ New failOnZeroTests option.
📝 Add TAP reporter to browser mode (experimental).
🐛 Bug fixes.
Thanks to Ventuno, Brenden Palmer, and others. #qunitgithub.com/qunitjs/qunit/rel…
QUnit 2.15 is out!
🐛 Fix TAP output to support cyclical objects.
🐛 Fix strict mode compat.
🕵️♂️ The filter UI now trims whitespace to improve matching.
Thanks to Zachary @ztheh, Edward @eaf4, and Nathaniel (nlfurniss) for their contributions! #qunitgithub.com/qunitjs/qunit/rel…
QUnit 2.14 is out!
🏄♀️ New floating header on the test page.
ℹ️ Accessibility improvements in the HTML reporter.
🦎 Official support for @SpiderMonkeyJS runtime.
🐛 Misc bug fixes.
Thanks to Bryan Crotaz and Steve McClure for their contributions! #qunitgithub.com/qunitjs/qunit/rel…
QUnit 2.13 is out!
📦 Introduce native support for ES Modules.
ℹ️ Improve logging for leaked assertions.
🐛 Fix suiteEnd event bug involving filters.
Thanks Steve McClure, Stephen Yeung, and brandonocasey for their contributions! #qunit#esmodulesgithub.com/qunitjs/qunit/rel…
Just released QUnit 2.12.
Notable changes:
⏩ New aliases for QUnit.test.only(), .skip(), and .todo().
➡️ Support assert.throws() with an arrow function as matcher.
Thanks to Steve McClure for contributing these!
github.com/qunitjs/qunit/rel…
QUnit 2.11.3 is out!
github.com/qunitjs/qunit/blo…
Since 2.11.0:
🐛 Minor bug fixes.
⏱ Even quicker CLI startup.
📝 Improved TAP output alignment. (Thanks @rwjblue!)