프로젝터와 카르마를 함께 사용할 수 있습니까?
프로젝터가 E2E 테스트용으로 Angular Scriony Runner를 대체하는 경우에도 E2E 테스트 프레임워크로서 Karma와 함께 사용할 수 있습니까?
현재 연장기 유지 관리자에 의해 권장되지 않는 사항:
https://github.com/angular/protractor/issues/9#issuecomment-19927049
견인기와 카르마는 함께 사용해서는 안 됩니다. 대신 테스트를 실행하기 위한 별도의 시스템을 제공합니다.프로텍터와 카르마는 테스트의 다양한 측면을 다룹니다. 카르마는 주로 유닛 테스트에 사용되는 반면, 프로텍터는 엔드 투 엔드 테스트에 사용해야 합니다.
Protractor는 WebDriverJS 위에 구축되어 있습니다.WebDriverJS는 Selenium/WebDriver 서버를 사용하여 브라우저를 프로비저닝하고 테스트 실행을 실행합니다.순수 Web 드라이버의 예JS는 다음 URL에서 찾을 수 있습니다.http://code.google.com/p/selenium/wiki/WebDriverJs
그리고.
https://github.com/angular/protractor/issues/9#issuecomment-19931154
Georgios - 엔드 투 엔드 테스트에서는 Protractor와 Karma를 분리하는 것이 타당하다고 생각합니다.또한 유닛 테스트에서는 웹 드라이버의 네이티브 이벤트 구동과 유연성을 필요로 합니다.또한 유닛 테스트에서는 고속 실행과 파일 자동 어소시에이션을 필요로 합니다.
업데이트. 이것은 하나의 명령어로 최소한의 카르마 셋업을 프로젝트에 추가하기 위해 작성한 간단한 패키지입니다.npm install min-karma
.
Karma와 Extractor에 대한 오해의 가능성을 명확히 하고 싶습니다.Karma FAQ는 실제로는 Angular의 시나리오 러너용 어댑터를 언급하고 있지만, 이 어댑터는 포기된 것으로 보이며 대신 Protractor를 권장합니다.
카르마
Karma는 컨피규레이션파일에 지정된 JavaScript 파일을 명시적으로 실행하거나 노드글로브를 사용하여 실행하는 테스트 주자입니다.(비 JavaScript 외부 템플릿의 경우 먼저 Karma html 프리프로세서를 사용하여 JavaScript로 컴파일할 것을 권장합니다.)
이것들은 모두 소스 파일입니다.일부 파일, 프로젝트와 무관한 추가 파일 또는 파일입니다.단, 일부 추가 구성만 제공할 수 있습니다.이름만 지정해 주세요.여러 가지 용도의 카르마 설정 파일을 동시에 실행할 수도 있고 하나씩 실행할 수도 있습니다.각 카르마 프로세스에서는 독자적인 브라우저 세트를 기동합니다(이러한 브라우저는 현재 이용 가능합니다).
이 Karma의 기능은 파일 세트만을 실행하는 것으로, 각 소스 파일의 편집시에 백그라운드에서 실행되는 고속 테스트에 최적이며, 즉시 피드백을 얻을 수 있어 매우 훌륭합니다.유일한 단점은 개선되는 "소음" 오류 보고입니다.
카르마는 단지 단위 테스트만을 위한 것이 아니다.
유닛 테스트는 소스 코드의 단일 유닛에 대한 것입니다.Angular의 경우 일반적인 단위는 Angular Component(각성분)입니다.Service, Factory, Provider, Controller, Filter, Directive
etc는, 해 주세요.Controllers
얇기 때문에 너무 많은 선반 유닛 테스트는 위험 신호입니다.
유닛 테스트에서는 이 유닛이 의존하는 다른 모든 코드 유닛(이른바 유닛의 의존관계)을 동시에 테스트해서는 안 됩니다.대신, 예를 들어 더미 인스턴스와 같은 단순한 것으로 대체해야 한다.Angular는 뛰어난 모의 환경 지원을 제공합니다.이상적으로는 테스트 내에서 이러한 모든 문제를 직접 확인하고 싶기 때문에 이러한 모든 종속성이 어디서 비롯되었는지 궁금해할 필요가 없습니다.
Karma는 통합 테스트에서도 마찬가지로 유용합니다.통합 테스트에서는 소스 코드 유닛의 그룹이 함께 테스트되고 의존관계는 일부만 조롱당합니다.의존관계는 기본적으로 소스 코드모듈에서 제공된다는 점에 유의하십시오(테스트에 직접 삽입된 모듈 또는 주입된 다른 모듈의 의존관계인 경우).조롱된 종속성은 제공된 종속성을 재정의합니다.
빠르고 자주 달리는 것이 카르마의 주요 특징입니다.즉, 서버 요청, 데이터베이스 쿼리, 몇 초보다 오래 걸릴 수 있는 모든 것을 피해야 합니다(그렇지 않으면 속도가 빠르지 않습니다).그 긴 과정은 당신이 조롱하고 싶은 것이다.또한 다음과 같은 낮은 수준의 원시 서비스를 도입하는 것이 왜 나쁜 관행인지 설명합니다.$http
컨트롤러 또는 복잡한 비즈니스 로직 유닛에 직접 접속할 수 있습니다.이러한 낮은 수준의 외부 통신 서비스를 소규모 전용 서비스로 정리하면, 「소멸」이 훨씬 쉬워집니다.
카르마는 사이트를 그대로 운영하는 것이 아니라 엔드 투 엔드(E2E) 테스트입니다.기본적으로 Angular의 내부 방법을 사용하여 사이트 또는 사이트 조각을 다시 만들 수 있습니다.이는 작은 조각의 경우 유용하며, 예를 들어 지시사항을 테스트하는 빠른 방법이 될 수 있습니다.
단, 복잡한 코드를 테스트에 삽입하는 방법은 권장되지 않습니다.더 많은 작업을 수행할수록 실제로 테스트하는 코드가 아닌 해당 코드에서 오류가 발생할 가능성이 높아집니다.
에 저는 으로 자주 싫습니다.$http
하위 수준의 메서드에 대한 참조를 전용 메서드로 분리하여 http 요구를 하는 것이 유일한 책임입니다.이러한 전용 메서드는 가짜 백엔드가 아닌 실제 백엔드를 사용할 수 있어야 합니다.테스트도 간단하게 할 수 있습니다.Karma를 다른 특별한 구성으로 실행해도 문제가 없습니다.단, Karma를 통상적으로 고속으로 실행할 때 사용하는 설정과 조합하지 않는 한.이제 전용 소규모 서비스를 테스트하면 안전하고 쉽게 조롱하여 다른 로직을 테스트하고 이러한 테스트를 일반적인 카르마 설정에 적용할 수 있습니다.
요약하자면.Karma를 사용하여 JavaScript 파일 세트를 실행합니다.그것은 빠르다(빠르다.앱 전체를 볼 수 없기 때문에 최종 결과를 효과적이고 안정적으로 테스트할 수 없습니다.제가 프로젝터로 작동할까요?내가 왜?'프로젝터'를 실행하면 내 테스트가 느려질 거야 카르마의 목적을 어기고 말이야따로따로 프로젝터를 실행하기가 쉽습니다.
프로젝터
프로젝터:
Angular의 엔드 투 엔드 테스트 프레임워크JS 어플리케이션Protractor는 실제 브라우저에서 실행 중인 응용 프로그램에 대해 테스트를 실행하여 사용자와 상호 작용합니다.
즉, Protractor는 Karma가 실행하지 않는 실제 최종 어플리케이션을 실행합니다.이를 통해 그 힘과 한계를 모두 알 수 있습니다.
완전한 어플리케이션을 실행하는 것이 어플리케이션이 올바르게 동작하는 유일한 신뢰성 있는 최종 테스트입니다.완전한 사용자 스토리 시나리오를 작성하여 테스트에 사용할 수 있습니다.
그러나 소스 코드의 개별 단위를 분리하지 않고 오류를 추적하는 것은 더 어렵습니다.이것이 바로 먼저 자바스크립트 코드를 테스트하기 위해 Karma가 여전히 필요한 이유입니다.
이제 내가 카르마와 함께 영사기를 운영하길 원하겠어?다른 터미널 창에서 병렬로 실행할 수 있습니다.필요하다면 원칙적으로 테스트 파일을 공유하게 할 수도 있지만 보통은 안 하는 게 낫죠. 왜요?하나의 전용 목적을 가지고 시험을 작게 치르고 싶기 때문이다.
유일한 예외는 두 주자에게 유용한 테스트 매크로를 정의하는 파일입니다.그러나 이것은 테스트 파일이 아니라 매크로 정의 파일입니다.
그것 말고는, 나는 시험 사이에 명확한 구분이 있는 것을 좋아한다.자주, 빠르게 실행할 것, 앱 전체를 실행할 것.이것은 카르마를 사용할 때와 프로젝터를 사용할 때의 차이를 명확하게 합니다.
Karma는 Angular 팀이 제공하는 테스트 주자입니다. Karma는 여러 브라우저에서 테스트를 수행합니다.이것에 의해, 당사의 애플리케이션이 모든 브라우저에서 호환성이 있는 것을 확인할 수 있습니다.각 js 단위 테스트는 카르마 + 재스민 사용 가능
Jasmine은 javascript 유닛 테스트 프레임워크로 어플리케이션을 테스트하기 위한 유틸리티를 제공합니다.이는 Angular 프레임워크에서 가장 잘 작동하므로 "자동 장치 테스트 도구"를 선택합니다.https://github.com/shahing/testingangularjs
또한 각도기는 각도 및 각도에 대한 엔드 투 엔드 테스트 프레임워크입니다.JS 어플리케이션Protractor는 실제 브라우저, 헤드리스 브라우저, 크로스 브라우저 테스트에서 실행되는 응용 프로그램에 대한 테스트를 실행하며 saucelab에서 호스팅할 수 있습니다.
https://github.com/shahing/Protractor-Web-Automation
네, 카르마와 면도기를 함께 사용할 수 있습니다.카르마는 angular 명령어를 사용하여 작성한 컴포넌트의 유닛 테스트에 사용됩니다.카르마를 사용하여 이들 컴포넌트를 테스트할 수 있습니다.연장기는 엔드 투 엔드 테스트에 사용됩니다.주로 UI 테스트에 사용됩니다.
언급URL : https://stackoverflow.com/questions/17070522/can-protractor-and-karma-be-used-together
'programing' 카테고리의 다른 글
데이터베이스 내의 모든 문자열 인스턴스를 검색 및 치환하려면 어떻게 해야 합니까? (0) | 2023.03.28 |
---|---|
jq를 사용하여 키 이름을 다른 이름으로 바꾸려면 어떻게 해야 합니까? (0) | 2023.03.28 |
React/Redux/Typescript 알림 메시지에서 컴포넌트를 자체에서 마운트 해제, 렌더 해제 또는 삭제하는 방법 (0) | 2023.03.28 |
스프링 부트 시작 시간 최소화 (0) | 2023.03.28 |
열에서 중복 항목 찾기 (0) | 2023.03.28 |