テストフレームワーク
2022-04-16 調査
2024-02-15 追記
テスティングフレームワーク
JavaScript
Karma https://karma-runner.github.io/latest/index.html
Jest https://jestjs.io/ja/
Jasmine https://jasmine.github.io/
mocha https://mochajs.org/
Testing Library https://testing-library.com/
Cucumber https://cucumber.io/
Wallaby.js https://wallabyjs.com/
Node.js Test runner https://nodejs.org/api/test.html#test-runner
Node.js の標準APIとしてテストランナーが追加された (v18.0.0, v16.17.0から)
Protractor https://github.com/angular/protractor
Angular 向け
QUnit https://qunitjs.com/
Vitest https://vitest.dev/
TestCafe https://testcafe.io/
ブラウザ自動実行(E2Eテスト)
Selenium https://www.selenium.dev/ja/
WebdriverIO https://webdriver.io/
Puppeteer https://pptr.dev/
Playwright https://playwright.dev/
Cypress https://www.cypress.io/
Nightwatch.js https://nightwatchjs.org/
アサーションライブラリ
chai https://www.chaijs.com/
power-assert https://github.com/power-assert-js/power-assert
Unexpected http://unexpected.js.org/
モック、テストダブル
Sinon.JS https://sinonjs.org/
Enzyme https://enzymejs.github.io/enzyme/
testdouble.js https://github.com/testdouble/testdouble.js
コードカバレッジ
istanbul https://gotwarlost.github.io/istanbul/
JSCover https://tntim96.github.io/JSCover/
Blanket.js https://github.com/alex-seville/blanket
保守されていない
現状、istanbul と JSCover のほぼ2択?
ブラウザ制御
WebdriverIO https://webdriver.io/
Puppeteer https://github.com/puppeteer/puppeteer
Nightmare https://github.com/segmentio/nightmare
AVA https://github.com/avajs/ava
https://github.com/avajs/ava-docs/blob/main/ja_JP/readme.md
Cypress https://www.cypress.io/
Percy https://percy.io/
UIテスト
テストの視覚化(?)
applitools https://applitools.com/
基本的には有償のツールだが、1ユーザーで100回/月で使える無償アカウントが使える。
CIツール
GitHub Actions https://github.co.jp/features/actions
CI に限らない。イベント駆動型の自動ツール
コンテナを使うことができる。
act
https://github.com/nektos/act
GitHub Actions をローカル実行できるようにするツール
CircleCI https://circleci.com/ja/
コンテナによるテスト環境サービス
JavaScript に限らない。
1コンテナ、一定時間までなら無料。
Jenkins https://www.jenkins.io/
有償のもの
mabl https://www.mabl.com/
https://www.mabl.com/japan
Renorex https://www.ranorex.com/
BrowserStack https://www.browserstack.com/
各種ブラウザの実行環境のサービス
もう使われていない
PhantomJS https://phantomjs.org/
Chrome が Headless 対応したため
SlimerJS https://github.com/laurentj/slimerjs
Chrome が Headless 対応したため
CasperJS https://github.com/casperjs/casperjs
PhantomJS の保守停止と共に止まった模様
メモ
https://medium.com/welldone-software/an-overview-of-javascript-testing-7ce7298b9870