Q1 2021 JavaScript Testing Libraries and Frameworks Report
2020-04-21 Update: Added Security information from Snyk. Made ThoughtWorks Technology Radar values clickable.
2020-04-20 Update: I've published reports for other categories as well and recommend checking them out: Frontend Frameworks, State Management Libraries, Build Tools and Module Bundlers, Static Sites Generators (JAMStack), and End-to-End Testing Frameworks.
Intro
This is a third report in the series "Q1 2021 State Of JavaScript Libraries and Tools". The previous reports were dedicated to Frontend Frameworks and State Management Libraries. The current report covers unit testing frameworks and libraries and provides insights into how the libraries performed in Q1 2021. Multiple data sources and metrics are used to provide a complete and unbiased picture.
I used Moiva to collect all the interesting data and presented it in a table as well as in charts.
I'm going to prepare a few more similar reports dedicated to other categories - CSS Frameworks, End-to-End Testing Libraries, Node.js frameworks, Build Tools and Bundlers, and Static Site Generators. Hence, stay tuned!
Data Sources
Data for the report came from:
- NPM - libraries downloads, releases, types, and dependencies.
- Google - search interest data.
- GitHub - stars, commits, contributors, license, and age.
- State of JavaScript Survey - libraries usage amongst developers.
- ThoughtWorks's Technology Radar data
- Snyk - security information.
Metrics
- Stars - the total number of GitHub stars as of April 1, 2021.
- New Stars - a number of new stars in Q1 2021.
- New Stars, % - (100 * New Stars) / (Stars - New Stars)
- NPM Downloads monthly - an average monthly npm downloads number in Q1 2021.
- NPM Downloads monthly % (incr.) - an increase of the average monthly npm downloads number compared to Q4 2020.
- Search Interest, % - Google search interest average number compared to other libraries in the 01.10.2020-31.03.2021 period.
- Developer Usage, % - percentage of developers using a library according to the latest StateOfJS 2020 survey.
- ThoughtWorks Tech Radar - a "ring" where a library was put. ThoughtWorks distinguishes four rings - "Adopt", "Trial", "Assess", and "Hold". You can learn more about the Radar here.
- NPM Releases - a number of NPM releases in Q1 2021.
- Commits - a number of commits in Q1 2021.
- Contributors - a number of contributors in Q1 2021.
- Dependencies - a number of NPM packages a library has in its dependencies list.
- Types - the way typings are provided, either bundled with the package (
BUNDLED
) or published to the @types organization on npm (SEPARATE
). - Security - calculated by Snyk a level of security (from
A
toF
) of Npm packages based on the number of vulnerabilities and their severity.A
- no vulnerabilities,F
- the least secure level. - Age
- License
Awards
- Jest has 35K stars in total and is a winner in the "Total Amount Of Stars" category.
- Jest justifies the title of the most popular testing framework and gets the biggest amount of new stars in Q1 2021 - 1.2K stars. React Testing Library follows Jest with 766 new stars.
- jest-dom' amount of stars increased by 10%. It was the biggest increase among the libraries in this report.
- Jest is an absolute leader in the "NPM Downloads" category. It has been downloaded a hefty 45M times on average every month. Mocha is second with 21M monthly downloads.
- Cucumber.js is a leader in terms of NPM downloads growth - 140%. Worth mentioning, that Cucumber.js had the lowest start among other libraries in the report - less than 100k monthly downloads in Q4 2020. That partly explains such impressive growth.
- Jest got the biggest amount of commits in Q1 2021 - 76.
- Chai had the biggest number of contributors - 12. Ava and Karma had one contributor less.
- Karma released the biggest number of NPM versions - 12. DOM Testing Library follows Karma with 10 releases.
Report
Hint: scroll horizontally to see values for all the libraries.
Each library has two links - Moiva and GitHub links. Use Moiva link to see more data about a particular library, to see historical data and trends.
Criteria | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Stars | 35K | 19K | 20K | 15K | 5.5K | 3.9K | 7.2K | 8.5K | 11K | 2.5K | 2.4K | 4.2K | 19K | 14K |
New Stars | 1.2K | 313 | 351 | 110 | 42 | 22 | 115 | 167 | 108 | 107 | 214 | 103 | 233 | 766 |
New Stars, % | 3.5% | 1.7% | 1.8% | 0.7% | 0.8% | 0.6% | 1.6% | 2% | 1% | 4.5% | 10% | 2.5% | 1.2% | 5.7% |
Monthly | 45M | 905K | 21M | 15M | 2.6M | 806K | 17M | 14M | 8.7M | 18M | 12M | 154K | 10M | 14M |
Monthly % (incr.) | 13% | 12% | 9% | 9% | 7% | 32% | 9% | 17% | 10% | 20% | 28% | 140% | 7% | 27% |
Search Interest, % | 30% | - | 5% | 9% | - | - | - | 3% | - | - | - | 19% | - | - |
Developer Usage, % | 68.3% | 7.8% | 52.7% | 42% | - | - | - | - | - | - | - | - | - | 26.4% |
Tech Radar | - | - | - | - | - | - | - | - | - | - | ||||
Releases | 0 | 1 | 3 | 2 | 4 | 2 | 5 | 3 | 12 | 10 | 2 | 0 | 0 | 4 |
Commits | 76 | 39 | 31 | 17 | 22 | 26 | 23 | 58 | 41 | 22 | 11 | 58 | 31 | 10 |
Contributors | 8 | 11 | 7 | 3 | 2 | 5 | 12 | 3 | 11 | 10 | 6 | 9 | 4 | 6 |
Dependencies | 3 | 56 | 25 | 0 | 17 | 4 | 6 | 6 | 23 | 8 | 8 | 34 | 22 | 2 |
Types | BUNDLED | - | SEPARATE | - | SEPARATE | SEPARATE | SEPARATE | SEPARATE | SEPARATE | BUNDLED | SEPARATE | BUNDLED | SEPARATE | BUNDLED |
Security | ||||||||||||||
Age | 7 years | 6 years | 10 years | 12 years | 8 years | 12 years | 9 years | 11 years | 10 years | 3 years | 3 years | 10 years | 5 years | 3 years |
License | MIT | MIT | MIT | MIT | MIT | MIT | MIT | BSD-3-Clause | MIT | MIT | MIT | MIT | MIT | MIT |