【问题标题】:what is the difference between karma and phantomJSkarma 和 phantomJS 有什么区别
【发布时间】:2016-03-29 03:13:43
【问题描述】:

我知道 Karma 是 Jasmine 或 Mocha 等 JS 单元测试框架的测试运行器。并且 PhantomJS 提供了运行 Jasmine 或 Mocha 测试的无头浏览器。

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

【问题讨论】:

    标签: javascript angularjs phantomjs karma-runner


    【解决方案1】:

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

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

    Karma 是一个运行器,它提供有关测试在哪里成功的完成报告。

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

    澄清一下

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

    【讨论】:

      【解决方案2】:

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

      Karma 是一个测试运行框架,很大程度上与测试框架语言无关。它拥有丰富的插件生态系统,可让您大量自定义测试运行的方式、时间和原因。

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

      但是,有时您希望在目标测试盒上未安装物理浏览器的情况下运行。这就是 PhantomJS 的用武之地。它是一个无需安装在目标机器上即可运行的无头浏览器。它不能取代业力。如果要说它是“竞争对手”,那就是 IE、Firefox、Chrome 和 Safari 的竞争对手。

      【讨论】:

      • 因此,如果我需要在浏览器上运行测试(例如在开发人员的笔记本电脑上),我会只使用 Karma,而当我想在我的 CI 服务器上运行测试时,我会使用 Karma+ PhantomJS?
      • 您仍然应该定位/需要定位开发人员笔记本电脑上的浏览器。 PhantomJS 工作得很好,chrome 也是如此。请记住,如果您需要调试测试(并且您可能会),Chrome 或其他浏览器要容易得多。我个人在我的开发机器上运行github.com/karma-runner/karma-chrome-launcher,在 Ci 服务器上运行github.com/karma-runner/karma-phantomjs-launcher
      猜你喜欢
      • 2015-04-17
      • 2015-06-06
      • 1970-01-01
      • 2010-10-02
      • 2011-12-12
      • 2010-09-16
      • 2012-03-14
      • 2012-02-06
      • 2011-02-25
      相关资源
      最近更新 更多