我应该使用量角器或业力进行端到端测试吗?[关闭]


124

我应该使用量角器或业力进行端到端测试吗?

Angular-seed正在使用Protractor / Selenium WebDriver进行E2E,但是angular-phonecat教程使用了业力。

我读到我应该使用Karma进行单元测试,使用Protractor进行E2E,这似乎还不错,但我想我想在这里征询其他开发人员的意见。


1
更适合软件建议。尽管如果您确实发布了此问题,则必须详细说明您的要求。相关meta
Allman教授2014年

5
Angular团队都使用和推荐了Karma和Protractor,但是鉴于文档的状态(即:有大量文档,并且很难知道最新信息),因此很难知道要使用哪个和用于哪个目的。这是一个很好的问题,glpretre的答案也正是我所寻找的。
马特

5
我认为问题不算太广泛(量角器与业力)。我们在这里讨论的是框架,而不仅仅是一些软件,所以问题出在正确的地方。
CCC 2015年

请参阅我的答案,以获取对用例,因果和量角器的优点和局限性的详细讨论:stackoverflow.com/a/29619467/1614973
Dmitri Zaitsev

我的理解是,量角器不允许仅在没有其余部分(例如模拟)的情况下测试应用程序的一部分:测试代码甚至没有在与应用程序相同的JS解释器中运行。没有文件系统监视源代码修改和受影响的测试的自动重新触发。业力提供这些。它将<script>中的测试代码+应用代码发送到浏览器,以便它们可以在相同的解释器中运行,可以进行模拟,但不适用于真实事件的端到端测试,就像真实用户在行为一样。
robert4

Answers:


179

AngularJS团队建议使用Protractor,因为它将替换角度场景运行器:

Angular Scenario Runner处于维护模式-如果要启动新的Angular项目,请考虑使用Protractor

引用AngularJs文档

Angular-phonecat教程是很久以前(主要是在2011年)开发的,尚未更新为使用诸如量角器之类的Angular新功能。

编辑

量角器文档-常见问题解答中

为什么同时使用业力和量角器?什么时候使用哪个?

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

这是一篇很棒的博客文章,提供了更多信息。


11
从Karma常见问题解答-karma-runner.github.io/0.10/intro/faq.html-我可以使用Karma进行端到端测试吗?Karma主要设计用于低级别(单元)测试。如果它是AngularJS应用程序,则可以将Karma与karma-ng-scenario插件一起使用,但是我们建议使用Protractor进行高级测试。
mrwaim 2015年

如果我想要单元测试以及e2e测试,那么我必须配置karma环境以进行单元测试,而将量角器配置为ui测试或e2e测试?
Sunil Garg,2013年

2
@SunilGarg是的,您必须这样做,也许我们的入门应用程序结构可以为您提供帮助:github.com/glepretre/angular-requirejs-ready(如果您不使用它,请忽略requireJS的详细信息)
glepretre
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.