几个问题:
Karma是一个浏览器测试运行者。
看每个部分:
(1)这些文件将是你实际的js文件;你要告诉卡玛怎么装子弹。如果你使用requirejs,有一个karma插件,需要一些配置。
(2)这些测试可以在各种Javascript测试框架(Jasmine, QUnit, Mocha) ;这是在浏览器中运行的JS代码。
(3)每个测试框架的自定义网页会有所不同。这就是为什么karma有不同框架的插件。
(4) Karma可以在许多浏览器(FF, Chrome或PhantomJs等无头浏览器)中启动页面。
(5)向karma报告同样依赖于框架,并由karma插件处理。
我来回答你的问题:
设计Karma的人的论文在描述现有解决方案和比较它们方面提供了非常丰富的信息,当然也描述了Karma本身
https://github.com/karma-runner/karma/blob/master/thesis.pdf
总结:Karma是一个测试运行者。它可以使用QUnit,茉莉,摩卡,…Karma在改善TDD/BDD开发周期方面比其他测试运行器更有优势。它“监视”文件,因此当您保存更改时,Karma会立即运行测试并报告,无需切换上下文到Web浏览器来运行测试。
简而言之,也许问题应该是卡玛和茉莉或摩卡或QUnit?
有一种更简单的方法可以理解它们的区别:
使用普通Jasmine / Mocha进行测试的人很可能在Node虚拟机上运行所有代码。
将Karma添加到混合(在您选择的现有框架之上)将使用其他浏览器的引擎运行您的测试套件。
通过这样做,您可以获得与浏览器环境相同的额外功能。测试DOM相关的代码会更容易,但是您也将放弃Node引擎提供的额外资源(如文件系统/ shell访问)