종단 간 테스트에 Protractor 또는 Karma를 사용해야합니까? [닫은]


124

종단 간 테스트에 Protractor 또는 Karma를 사용해야합니까?

Angular-seed는 E2E 용 Protractor / Selenium WebDriver를 사용하고 있지만 angular-phonecat 튜토리얼은 카르마를 사용합니다.

단위 테스트에는 Karma를, E2E에는 Protractor를 사용해야한다고 읽었습니다. 괜찮아 보이지만 여기에서 다른 개발자의 의견을 구할 것이라고 생각했습니다.


1
소프트웨어 권장 사항에 더 적합 합니다 . 이 질문을 거기에 게시하면 요구 사항이 무엇인지 자세히 설명해야합니다. 관련 메타
Professor Allman

5
Karma와 Protractor는 모두 Angular 팀에서 사용하고 권장하지만 문서 상태를 고려할 때 (예 : 많은 양이 있고 최신 내용을 알기 어렵습니다) 어떤 용도로 어떤 용도로 사용해야하는지 알기가 어렵습니다. 이것은 좋은 질문이고 glpretre의 대답은 내가 찾던 바로 그것이었습니다.
Matt

5
질문이 너무 광범위하다고 생각하지 않습니다 (분도기 대 카르마). 우리가 여기서 이야기하고있는 것은 단지 일부 소프트웨어가 아닌 프레임 워크이므로 문제는 올바른 위치에 있습니다.
CCC

: 사용 사례, 장점과 카르마와 각도기의 제한보다 자세한 설명은 여기 내 대답을 참조하십시오 stackoverflow.com/a/29619467/1614973
드미트리 Zaitsev

내 이해는 Protractor가 나머지 (예 : 조롱)없이 앱의 일부만 테스트하는 것을 허용하지 않는다는 것입니다. 테스트 코드는 애플리케이션과 동일한 JS 인터프리터에서 실행되지도 않습니다. 소스 코드 수정 및 영향을받는 테스트의 자동 재 트리거에 대한 파일 시스템 모니터링이 없습니다. Karma는이를 제공합니다. 테스트 코드 + 앱 코드를 <script> s로 브라우저에 전송하여 동일한 인터프리터에서 실행되도록 조롱 할 수 있지만 실제 사용자가 행동하는 것처럼 네이티브 이벤트를 사용한 엔드 투 엔드 테스트 용으로 설계되지 않았습니다.
robert4

답변:


179

AngularJS 팀은 각도 시나리오 러너를 대체 할 것이므로 Protractor를 사용할 것을 권장합니다.

Angular Scenario Runner가 유지 관리 모드에 있습니다.-새 Angular 프로젝트를 시작하는 경우 Protractor 사용을 고려하십시오 .

AngularJs 문서 에서 인용했습니다 .

angular-phonecat 튜토리얼은 오래 전에 (주로 2011 년에) 개발되었으며 아직 Protractor와 같은 일부 Angular 새로운 기능을 사용하도록 업데이트되지 않았습니다.

편집하다

각도기 문서 에서 -FAQ :

Karma와 Protractor가 모두 필요한 이유는 무엇입니까? 언제 사용합니까?

Karma는 단위 테스트를위한 훌륭한 도구이며, Protractor는 종단 간 또는 통합 테스트를위한 것입니다. 즉, 개별 컨트롤러, 지시문 및 서비스의 논리에 대한 소규모 테스트는 Karma를 사용하여 실행해야합니다. 전체 애플리케이션의 실행중인 인스턴스가있는 대규모 테스트는 Protractor를 사용하여 실행해야합니다. Protractor는 사용자의 관점에서 테스트를 실행하기위한 것입니다. 테스트가 애플리케이션과 상호 작용하는 사람을위한 지침으로 기록 될 수 있다면 Protractor로 작성된 엔드 투 엔드 테스트 여야합니다.

여기 에 더 많은 정보를 담은 훌륭한 블로그 게시물 이 있습니다.


11
Karma FAQ에서 -karma-runner.github.io/0.10/intro/faq.html-Karma를 사용하여 종단 간 테스트를 수행 할 수 있습니까? Karma는 주로 저수준 (단위) 테스트를 위해 설계되었습니다. AngularJS 앱인 경우 Karma를 karma-ng-scenario 플러그인과 함께 사용할 수 있지만 높은 수준의 테스트에는 Protractor를 권장합니다.
mrwaim

단위 테스트와 e2e 테스트를 원하면 단위 테스트를위한 karma 환경을 구성하고 ui 테스트 또는 e2e 테스트를위한 각도기를 구성해야합니까?
Sunil Garg

2
@SunilGarg 예, 그래야만 합니다. 시작 앱 구조가 도움이 될 수 있습니다. github.com/glepretre/angular-requirejs-ready (사용하지 않는 경우 requireJS 세부 사항 무시)
glepretre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.