いくつかの質問:
いくつかの質問:
回答:
Karmaはブラウザのテストランナーです。
ブラウザーには、テストファイルの読み込み、実行、および結果の報告という概念がブラウザーに本来備わっていないという考え方です。カルマがすることは(おおよそ):
各部を見る:
(1)これらのファイルは実際のjsファイルになります。それらをロードする方法をカルマに伝えます。requirejsを使用する場合、karmaプラグインがあり、いくつかの設定が必要です。
(2)これらのテストは、さまざまなJavascriptテストフレームワーク(Jasmine、QUnit、Mocha)で記述できます。これはブラウザで実行されるJSコードです。
(3)カスタムWebページは、テストフレームワークごとに少し異なります。これが、karmaにさまざまなフレームワーク用のプラグインがある理由です。
(4)Karmaは多くのブラウザー(FF、Chrome、またはPhantomJなどのヘッドレスブラウザー)でページを起動できます。
(5)カルマへのレポートは、やはりフレームワークに依存し、カルマプラグインを扱います。
だからあなたの質問に答えるには:
違いを理解する1つの短い方法:
プレーンなJasmine / Mochaでテストしている人々は、おそらくすべてのコードをNode仮想マシンで実行しています。
Karmaを(選択した既存のフレームワークの上に)ミックスに追加すると、他のブラウザーのエンジンでテストスイートが実行されます。
これを行うことで、ブラウザ環境で得られる小さな追加機能を利用できます。DOM関連のコードをテストする方が簡単ですが、ノードエンジンによって提供される追加のリソース(ファイルシステムやシェルアクセスなど)も放棄します。
カルマを設計した男の論文は、既存のソリューションを説明し、それらを比較すること、そしてもちろんカルマ自体を説明することにおいて非常に有益でした
https://github.com/karma-runner/karma/blob/master/thesis.pdf
概要:Karmaはテストランナーです。QUnit、Jasmine、Mochaなどで使用できます... Karmaは、TDD / BDD開発サイクルを改善するために他のテストランナーよりも優れています。ファイルを「監視」するため、変更を保存すると、カルマはテストとレポートを即座に実行し、テストを実行するためにWebブラウザーにコンテキストを切り替えません。
要するに、おそらく質問はカルマANDジャスミンまたはモカまたはQUnitである必要がありますか?