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