karma和phantomJS之间有什么区别?

时间:2015-12-22 19:15:03

标签: javascript angularjs phantomjs karma-runner

我知道Karma是JS Unit测试框架(如Jasmine或Mocha)的测试运行者。 PhantomJS提供无头浏览器来运行Jasmine或Mocha Tests。

但是,Karma和PhantomJS有什么区别?它们是两个竞争工具,还是我在Karma之上使用PhantomJS在没有浏览器的情况下运行我的单元测试?

2 个答案:

答案 0 :(得分:31)

PhantomJS与测试无关。在单元测试范围内,它将成为目标浏览器之一。

PhantomJS允许您在桌面环境不存在时在浏览器中运行单元测试。

Karma是 runner ,提供有关测试成功程度的完成报告。

Jasmine是用于编写单元测试的库。

所以要澄清

Jasmine 单元测试由浏览器 PhantomJS 内的 Karma 运行。

答案 1 :(得分:5)

您似乎已经回答了自己的问题,但我会扩展您提到的内容。

Karma是一个测试运行框架,主要是测试框架语言无关。它有一个丰富的插件生态系统,允许您大量定制测试的运行方式,时间和原因。

为了测试Javascript,我们经常需要针对DOM的化身进行测试。有许多插件可以让你连接到不同的浏览器,如karma-chrome。这些插件引导所需的浏览器并对浏览器执行测试。

但是,有时您希望在目标测试框上没有安装物理浏览器的情况下运行。这就是PhantomJS的用武之地。它是一个无头浏览器,无需安装在目标机器上即可运行。它无法取代Karma。如果您想将其描述为"竞争对手",它将成为IE,Firefox,Chrome和Safari的竞争对手。