각도 연장기 재스민 테스트에서의 console.log 출력 표시
angularjs protractor jasmine 테스트에서 console.log 출력을 표시하려면 어떻게 해야 합니까?현재 브라우저가 너무 빨리 닫힙니다.
추가 정보 - angularjs 튜토리얼 8단계에서 작업 중입니다.저는 e2e 테스트를 익스트럭터로 변경하려고 합니다.사용하고 있는 프로젝터 설정 파일은 %appdata%\npm\node_modules\protractor\referenceConf.js에 기반하고 있습니다.구성 파일에서 참조하는 spec js 파일에 console.log 인스턴스가 있습니다.그러나 프로젝터 e2e 테스트 실행 중 웹 사이트가 크롬으로 열리고 브라우저에 어떤 일이 발생하는지 확인한 후 console.log 출력을 검사하기 전에 브라우저를 닫습니다.크롬을 열어놔야 할 것 같은데 어떻게?
사용하다browser.manage().logs().get('browser')
browser.manage().logs().get('browser').then(function(browserLogs) {
// browserLogs is an array of objects with level and message fields
browserLogs.forEach(function(log){
if (log.level.value > 900) { // it's an error log
console.log('Browser console error!');
console.log(log.message);
}
});
});
일반적인 오해는console.log
브라우저에 로그가 기록됩니다.그것은 잘못됐어.테스트를 실행할 때 테스트 결과와 함께console.log()
값을 설정합니다.브라우저 콘솔은 이것과 완전히 다릅니다.
일반적인 예:
it('get name as John', function(){
element(by.id('name')).getText().then(function(value){
console.log(value);
})
});
터미널 결과:
John
get name as John - pass
도움이 됐으면 좋겠다.
이제 특별한 코드를 작성하지 않고 플러그인을 통해 이 작업을 수행할 수 있습니다.
- 퍼스트 파티(크롬만 해당)
- 서드파티
브라우저 창을 열어두려면 디버깅모드에서 Protractor를 실행해야 합니다.
$ <route-to-protractor> debug <route-to-conf-file>
그런 다음 스펙 파일에서 실행을 중지할 다음 행을 추가합니다.
browser.debugger();
Protractor 디버거 콘솔에서 다음을 입력하여 중지 단계를 밟을 수 있습니다.c
또는cont
.
자세한 내용은 이쪽:https://github.com/angular/protractor/blob/master/docs/debugging.md
콘솔 컨텐츠를 입수하려면 , 다음의 Protractor FAQ 를 참조해 주세요.https://github.com/angular/protractor/blob/master/docs/faq.md#how-can-i-get-hold-of-the-browsers-console
예를 들어 다음과 같습니다.
browser.manage().logs().get('browser').then(function(browserLog) {
console.log('log: ' + require('util').inspect(browserLog));
})
다른 유형의 콘솔 출력을 표시하기 위해 로깅 수준을 변경할 수도 있습니다.
이 작업을 수행하려면 여기서 프로젝터 업데이트 제안 FAQ를 참조하십시오.
테스트에서는 항상 console.log를 덮어쓸 수 있습니다. : )
logMessages = [];
console.log = function(message) {
logMessages.push(message);
}
console.log 대신 $log를 사용하여 로그 메시지에 후크를 추가할 수도 있습니다.https://gist.github.com/lrvick/6938531
간단한 옵션은 다음과 같습니다.
browser.pause();
프로젝터 / api / api . protpausepause 。
예를 들어 다음과 같습니다.
it('should .. test stuff', function() {
browser.pause(); //--->the automation will pause here - follow the instructions in your terminal to continue
//--->your broken testing magic here...
});
이 메서드 호출을 브라우저 콘솔을 표시할 필요가 있는 사양 본문의 첫 번째 항목으로 배치합니다.
브라우저가 일시 중지되면 자동화를 제어할 수 있습니다.그런 다음 다른 상태의 요소를 검사하거나 브라우저 콘솔을 확인하는 등 평소처럼 브라우저와 상호 작용할 수 있습니다.
를 계속하다, 라고 하고 계속합니다.c
터미널에서 계속 진행하기 위해 입력 대기 안내 메시지가 나타납니다.
네가 만약
- 굴절기를 설치하다
- 설정에 추가
plugins: [
{
package: 'protractor-console',
logLevels: ['severe'],
},
],
그러면 모든 브라우저 오류 로그가 프로젝터를 실행하는 명령줄에 기록됩니다.
언급URL : https://stackoverflow.com/questions/22082395/view-console-log-output-in-angular-protractor-jasmine-test
'programing' 카테고리의 다른 글
JSON 응답에 대한 jQuery AJAX 폴링, AJAX 결과 또는 JSON 콘텐츠에 따른 처리 (0) | 2023.03.23 |
---|---|
AngularJS - 선택 태그에 ng-repeat을 사용하여 추가 공백 옵션 추가 (0) | 2023.03.23 |
스프링 부트 시 Tomcat을 사용한HTTP2의 이니블화 (0) | 2023.03.23 |
wcf에서 raw json(문자열)을 반환하는 중 (0) | 2023.03.23 |
Angular 앱을 배포하려면 어떻게 해야 합니까? (0) | 2023.03.23 |