QUnit is a powerful, easy-to-use JavaScript testing framework. It was originally developed for the jQuery project and has since evolved to be a dependency of many modern JavaScript libraries and applications, including being the default testing framework for the Ember.js ecosystem.
Philosophy
QUnit’s philosophy as a test framework boils down to three primary tenants: Easy, Universal, and Extensible.
Easy
QUnit should be easy-to-use from start to finish. Setting up your first test with should be super simple, requiring as little overhead as possible. Then, as you’re developing, when a test or assertion fails, QUnit should provide feedback to you as fast as possible, with enough detail to quickly figure out the underlying issue. And it should do so without interrupting or corrupting other tests.
Additionally, QUnit should be fast to make it easy for developers to have confidence that putting their tests on their critical path won’t slow them down.
Universal
QUnit should be universally applicable for testing JavaScript code and support many different environments. JavaScript can run in the browser, in worker threads, and on the server, and so should QUnit so that you can test your code in the same environment where it will be running; the environment where you need to have confidence it works.
Extensible
QUnit should be opinionated with a lean API to support being easy-to-use, yet highly extensible. There are many different approaches to testing and many different types of tests that users may want to write, and while we can not support all of these out of the box, we can support APIs to enable the community to extend QUnit to meet their needs.
Team
Between API design, feature implementation, ticket triage, bug fixing, and everything else, there’s a lot of work that goes into QUnit, and all of it is done by volunteers. While we value all of our contributors, there are a few who contribute frequently, provide high-level direction for the project, and are responsible for its overall maintenance, and we recognize them below.
For a full list of contributors, see the authors list.
Timo Tijhof - Project Lead
Timo is a senior engineer at Wikimedia Foundation where he is on the Architecture Committee, the technical committee that governs the integrity and stability of Wikimedia software projects. He has been contributing to jQuery Foundation projects since 2011, joined the QUnit Team in 2012, and became the project lead in mid-2020.
Richard Gibson
Richard is an architect at Dyn in New Hampshire, USA. He has been contributing to jQuery Foundation projects since 2011 (QUnit since 2012) and can be spotted on a large handful of open source repositories.
Trent Willis
Trent is a Senior UI Engineer at Netflix in Los Gatos, CA. He has been contributing to QUnit since 2015 and served as the project lead from early 2017 to mid-2020.
Jörn Zaefferer
Jörn is a freelance web developer, consultant, and trainer, residing in Cologne, Germany. Jörn evolved jQuery’s test suite into QUnit and was project lead until mid-2015. He created and maintains a number of popular plugins. As a jQuery UI development lead, he focuses on the development of new plugins, widgets, and utilities.
Previous Team Members
History
QUnit was originally developed by John Resig as part of jQuery. In 2008 it got its own home, name, and API documentation, allowing anyone to use it for their unit testing. The 2009 rewrite, leading up to the QUnit 1.0 release, removed the dependency on jQuery. QUnit has been an independent project ever since.
The QUnit API design and terminology formed the basis of the CommonJS Unit Testing specification, and has since expanded it to include a wide variety of assertions. The CommonJS specification has been adopted across the JavaScript ecosystem, such in Node.js assert, node-tap, and tape.