programing

각도 연장기 재스민 테스트에서의 console.log 출력 표시

starjava 2023. 3. 23. 22:12
반응형

각도 연장기 재스민 테스트에서의 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

반응형