TDD 用の JavaScript ユニットテストツール 質問する

TDD 用の JavaScript ユニットテストツール 質問する

多くの JavaScript ユニット テストとテスト ツールを調べて検討しましたが、TDD に完全に準拠した適切なオプションを見つけることができませんでした。それでは、TDD に完全に準拠した JavaScript ユニット テスト ツールはあるのでしょうか?

ベストアンサー1

カルマまたは分度器

Karma は、Node.js で構築され、ユニット テスト用に設計された JavaScript テスト ランナーです。

Protractor はエンドツーエンドのテスト用であり、Selenium Web Driver を使用してテストを実行します。

どちらも Angular チームによって作成されました。どちらでも、任意のアサーション ライブラリを使用できます。

スクリーンキャスト:カルマ はじめよう

関連している

長所:

  • Node.jsを使用しているため、Win/OS X/Linuxと互換性があります
  • PhantomJS を使用してブラウザまたはヘッドレスからテストを実行する
  • 複数のクライアントで同時に実行
  • ブラウザを起動、キャプチャ、自動的にシャットダウンするオプション
  • 開発用コンピュータ上でサーバー/クライアントを実行するか、別々に実行するかのオプション
  • コマンドラインからテストを実行する(ant/maven に統合可能)
  • xUnitまたはBDDスタイルでテストを書く
  • 複数のJavaScriptテストフレームワークをサポート
  • 保存時にテストを自動実行
  • ドメイン間のリクエストをプロキシする
  • カスタマイズ可能:
    • 他のテストフレームワークをラップするように拡張する(Jasmine、Mocha、QUnit組み込み)
    • あなた自身の主張/反論
    • 記者
    • ブラウザランチャー
  • WebStorm用プラグイン
  • NetBeans IDEでサポートされています

短所:

モカ

私は mocha.js の機能、長所、短所についてコメントする資格が全くありませんが、JS コミュニティで信頼している誰かから勧められたのです。

ウェブサイトで報告されている機能のリスト:

  • ブラウザのサポート
  • シンプルな非同期サポート(Promiseを含む)
  • テストカバレッジレポート
  • 文字列差分のサポート
  • JavaScript # テストを実行するための API
  • CI サポートなどの適切な終了ステータス
  • 非 tty の色付けを自動検出して無効にする
  • キャッチされていない例外を正しいテストケースにマッピングする
  • 非同期テストのタイムアウトのサポート
  • テスト固有のタイムアウト
  • グロウル通知のサポート
  • テスト期間を報告する
  • 遅いテストを強調する
  • ファイルウォッチャーのサポート
  • グローバル変数リーク検出
  • オプションで正規表現に一致するテストを実行する
  • アクティブループによる「ハング」を防ぐための自動終了
  • スイートとテストケースを簡単にメタ生成
  • mocha.opts ファイルのサポート
  • クリック可能なスイートタイトルでテスト実行をフィルタリング
  • ノードデバッガーのサポート
  • done() の複数の呼び出しを検出します
  • 任意のアサーションライブラリを使用する
  • 9 種類以上のレポーターがバンドルされた拡張可能なレポート
  • 拡張可能なテストDSLまたは「インターフェース」
  • 前、後、各フックの前、各フックの後
  • 任意のトランスパイラのサポート(coffee-script など)
  • TextMateバンドル

ヨルポ

ヨルポ

これはもう存在しません。シーケンシャルその代わり

Yolpo は、JavaScript の実行を視覚化するツールです。JavaScript API 開発者は、API を表示して説明するためのユースケースを作成することが推奨されます。このようなユースケースは、回帰テストの基礎となります。

エイバ

AVA ロゴ

ES2015 のサポートが組み込まれた未来的なテスト ランナー。JavaScript はシングル スレッドですが、Node.js の I/O は非同期の性質により並列で実行できます。AVA はこれを利用してテストを同時に実行します。これは、I/O が重いテストに特に役立ちます。さらに、テスト ファイルは個別のプロセスとして並列で実行されるため、パフォーマンスがさらに向上し、テスト ファイルごとに分離された環境が提供されます。

  • 最小限かつ高速
  • シンプルなテスト構文
  • テストを同時に実行する
  • アトミックテストの記述を強制する
  • 暗黙のグローバルなし
  • 各テストファイルごとに分離された環境
  • ES2015でテストを書く
  • サポートを約束
  • ジェネレータ関数のサポート
  • 非同期関数のサポート
  • 観察可能なサポート
  • 強化されたアサート
  • オプションのTAP出力
  • スタックトレースをクリーンにする

バスター

Node.jsで構築されたJavaScriptテストランナー。非常にモジュール化されており、柔軟性があります。独自のアサーションライブラリが付属していますが、必要に応じて独自のものを追加することもできます。アサーションライブラリは分離されているため、他のテストランナーと一緒に使用することもできます。assert(!...)または を使用する代わりにexpect(...).not...を使用しますが、refute(...)これは個人的には良い工夫だと思います。

ブラウザの JavaScript テスト ツールキット。ブラウザ自動化 (JsTestDriver など)、QUnit スタイルの静的 HTML ページ テスト、ヘッドレス ブラウザ (PhantomJS、jsdom など) でのテストなど、さまざまな機能を備えたブラウザ テストを実行します。概要

Node.js テスト ツールキット。同じテスト ケース ライブラリ、アサーション ライブラリなどを入手できます。これはハイブリッド ブラウザーと Node.js コードにも最適です。テスト ケースを記述しBuster.JS、Node.js と実際のブラウザーの両方で実行します。

スクリーンキャスト:Buster.js 入門(2:45)

長所:

  • Node.jsを使用しているため、Win/OS X/Linuxと互換性があります
  • PhantomJS を使用してブラウザまたはヘッドレスからテストを実行する (近日公開)
  • 複数のクライアントで同時に実行
  • Node.jsテストをサポート
  • 開発用コンピュータでサーバー/クライアントを実行する必要はありません (IE は不要)
  • コマンドラインからテストを実行する(ant/maven に統合可能)
  • xUnitまたはBDDスタイルでテストを書く
  • 複数のJavaScriptテストフレームワークをサポート
  • コメントアウトせずにテストを延期する
  • SinonJS組み込み
  • 保存時にテストを自動実行
  • ドメイン間のリクエストをプロキシする
  • カスタマイズ可能:
    • 他のテストフレームワークをラップするように拡張する(JsTestDriver が組み込まれている)
    • あなた自身の主張/反論
    • レポーター (xUnit XML、従来のドット、仕様、タップ、TeamCity などが組み込まれています)
    • ブラウザテストを実行するために使用されるHTMLをカスタマイズ/置き換えます
  • TextMateとEmacsの統合

短所:

  • まだベータ版なのでバグがある可能性があります
  • Eclipse/IntelliJ 用のプラグインはありません (まだ)
  • TestSwarm * のように、結果を OS/ブラウザ/バージョン別にグループ化しません。ただし、テスト結果にブラウザ名とバージョンが出力されます。
  • TestSwarmのような以前のテスト結果の履歴はありません*
  • Windowsでは完全に動作しない2014年5月現在

* TestSwarmは継続的インテグレーションサーバーでもありますが、には別のCIサーバーが必要ですBuster.js。ただし、xUnit XMLレポートを出力するので、簡単に統合できます。ハドソンまたはその他の CI サーバー。

テストスウォーム

https://github.com/jquery/testswarm

TestSwarm は、GitHub ウェブページに記載されているように、公式にはもう積極的に開発されていません。Karma、browserstack-runner、または Intern が推奨されています。

ジャスミン

ジャスミン

これは、RubyやRuby on Railsに精通した開発者にとって興味深いかもしれない、ビヘイビア駆動型フレームワークです(以下の引用で述べられているように)。構文は以下に基づいています。RスペックRails プロジェクトでのテストに使用されます。

Jasmine 仕様は、HTML ページ (qUnit 形式) またはテスト ランナー (Karma など) から実行できます。

Jasmine は、JavaScript コードをテストするための動作駆動型開発フレームワークです。他の JavaScript フレームワークには依存しません。DOM も必要ありません。

このテスト フレームワークの使用経験がある場合は、さらに詳しい情報をお寄せください :)

プロジェクトホーム:ジャスミン

Qユニット

QUnit は、開発者に可能な限りの利便性を提供しながら、ブラウザで JavaScript をテストすることに重点を置いています。サイトからの説明:

QUnitは強力で使いやすいJavaScriptユニットテストスイートです。jQuery、jQuery UI、jQuery Mobileプロジェクトで使用され、あらゆる汎用JavaScriptコードをテストできます。

QUnit は TestSwarm (上記) といくつかの共通点を持っています:

QUnit はもともと John Resig によって jQuery の一部として開発されました。2008 年に独自のホーム、名前、API ドキュメントが与えられ、他の人もユニット テストに使用できるようになりました。当時はまだ jQuery に依存していました。2009 年の書き換えでそれが修正され、現在 QUnit は完全にスタンドアロンで動作します。QUnit のアサーション メソッドは CommonJS ユニット テスト仕様に準拠しており、これはある程度 QUnit の影響を受けています。

プロジェクトホーム:http://qunitjs.com/

シノン

もう一つの素晴らしいツールはシノン著者:クリスチャン・ヨハンセンテスト駆動JavaScript開発彼自身が次のように最もよく表現しています。

JavaScript 用のスタンドアロン テスト スパイ、スタブ、モック。依存関係はなく、どのユニット テスト フレームワークでも動作します。

インターン

インターンウェブサイトこのリストにある他のテスト フレームワークとの機能の直接比較を提供します。他のどの JavaScript ベースのテスト システムよりも多くの機能をすぐに使用できます。

冗談

新しいけれども非常に強力なテストフレームワーク。スナップショットベースのテストも可能で、テスト速度が向上し、テストに関して新たなダイナミクスが生まれます。

彼らの講演の 1 つをご覧ください:https://www.youtube.com/watch?v=cAKYQpTC7MA

さらに良いのは:はじめる

おすすめ記事