【问题标题】:Should I be using Protractor or Karma for my end-to-end testing? [closed]我应该使用 Protractor 还是 Karma 进行端到端测试? [关闭]
【发布时间】:2014-03-11 00:59:01
【问题描述】:

我应该使用 Protractor 还是 Karma 进行端到端测试?

Angular-seed 使用 Protractor/Selenium WebDriver 进行 E2E,但 angular-phonecat 教程使用 karma。

我读到我应该使用 Karma 进行单元测试,使用 Protractor 进行 E2E,这看起来不错,但我想我会在这里询问其他开发人员的意见。

【问题讨论】:

  • 更适合software recommendations。尽管如果您确实在此处发布此问题,则必须详细说明您的要求。 Related meta
  • Karma 和 Protractor 都被 Angular 团队使用和推荐,但考虑到文档的状态(即:有大量文档,很难知道怎么了最新的),很难知道哪个用途和目的。这是一个很好的问题,glpretre 的答案也正是我想要的。
  • 我认为这个问题并不太宽泛(量角器与业力)。我们在这里讨论的是框架,而不仅仅是一些软件,所以问题来对了。
  • 在此处查看我的答案,以更详细地讨论 Karma 和 Protractor 的用例、优势和局限性:stackoverflow.com/a/29619467/1614973
  • 我的理解是 Protractor 不允许只测试应用程序的一部分而不存在其余部分(例如模拟):测试代码甚至没有在同一个 JS 解释器中运行应用。没有文件系统监视源代码修改和受影响测试的自动重新触发。业力提供这些。它将

标签: angularjs protractor


【解决方案1】:

AngularJS 团队建议使用 Protractor,因为它将取代 Angular 场景运行器:

Angular Scenario Runner 处于维护模式 - 如果您要开始一个新的 Angular 项目,请考虑使用Protractor

引自AngularJs documentation

教程 angular-phonecat 是很久以前开发的(主要是在 2011 年),还没有更新到使用一些 Angular 的新功能,比如 Protractor。

编辑

Protractor Docs - FAQ

为什么同时使用 Karma 和 Protractor?我什么时候用哪个?

Karma 是一款出色的单元测试工具,Protractor 旨在用于 端到端或集成测试。这意味着小测试 您的各个控制器、指令和服务的逻辑应该 使用 Karma 运行。您有一个正在运行的实例的大型测试 您的整个应用程序应该使用 Protractor 运行。量角器是 旨在从用户的角度运行测试 - 如果您的测试可以 写下来作为人类与您互动的说明 应用程序,它应该是用 Protractor 编写的端到端测试。

这里有一个great blog post 提供更多信息。

【讨论】:

  • 来自 Karma 常见问题解答 -karma-runner.github.io/0.10/intro/faq.html - 我可以使用 Karma 进行端到端测试吗? Karma 主要是为低级(单元)测试而设计的。如果它是 AngularJS 应用程序,您可以使用 Karma 和 karma-ng-scenario 插件,但我们建议使用 Protractor 进行高级测试。
  • 如果我想要单元测试以及 e2e 测试,那么我必须为单元测试和量角器配置 karma 环境以进行 ui 测试或 e2e 测试?
  • @SunilGarg 是的,你必须这样做,也许我们的入门应用程序结构可以帮助你:github.com/glepretre/angular-requirejs-ready(如果你不使用它,请忽略 requireJS 细节)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2020-03-13
  • 2023-03-11
  • 1970-01-01
  • 2023-01-24
相关资源
最近更新 更多