我知道Karma是JS Unit测试框架(如Jasmine或Mocha)的测试运行器.PhantomJS提供无头浏览器来运行Jasmine或Mocha Tests.
但是,Karma和PhantomJS有什么区别?它们是两个竞争工具,还是我在Karma之上使用PhantomJS在没有浏览器的情况下运行我的单元测试?
PhantomJS与测试无关.在单元测试范围内,它将成为目标浏览器之一.
PhantomJS允许您在桌面环境不存在时在浏览器中运行单元测试.
Karma是一名跑步者,提供有关测试成功程度的完成报告.
Jasmine是用于编写单元测试的库.
所以要澄清一下
Jasmine 单元测试由Karma在浏览器PhantomJS中运行.
看起来你已经有点回答了自己的问题,但我会扩展你提到的内容.
Karma是一个测试运行框架,主要是测试框架语言无关.它具有丰富的插件生态系统,允许您大量定制测试运行的方式,时间和原因.
为了测试Javascript,我们经常需要针对DOM的化身进行测试.有许多插件可以让你连接到不同的浏览器,如karma-chrome.这些插件引导所需的浏览器并对浏览器执行测试.
但是,有时您希望在目标测试框上未安装物理浏览器的情况下运行.这就是PhantomJS的用武之地.它是一个无头浏览器,无需安装在目标机器上即可运行.它无法取代Karma.如果您想将其描述为"竞争对手",它将成为IE,Firefox,Chrome和Safari的竞争对手.