js 오류를 캡처하지만 그로 인해 testcafe 테스트에 실패하지 않는 방법이 있습니까?

Jarob22

저는 현재 TestCafe 테스트를 작성하기 시작했으며, 실행하는 동안 웹 사이트에서 문제를 발견했습니다. 콘솔의 JS 오류가 테스트에 실패했습니다. 당연히 내 테스트가 이것을 포착 한 것을 매우 기쁘게 생각했지만 우선 순위가 낮고 사용자에게 직접 영향을 미치지 않는 JS 오류가 발생하더라도 테스트가 실패하고 빌드를 방해 할 수 있음을 의미합니다.

이제 이것은 누군가가 원하는 워크 플로 일 수 있지만, 우리는 JS 오류로 인해 모든 사람을 차단하는 것보다 티켓을 제기하고 병렬 워크 플로에서 해결하는 것이 좋습니다. 나는 --skip-js-errors옵션을 알고 있지만 이것은 모든 오류를 완전히 제거합니다. 오류를 경고로 변환하거나 단순히 테스트 실행 중에 발생한 JS 오류를 로그 아웃하는 일종의 사후 테스트 기능을 추가하는 것과 같은 중간 지점이 있습니까? 나는 afterEach다음과 같이 내 조명기에을 추가하려고 시도했습니다 .

.afterEach(async t => {
  const { error } = await t.getBrowserConsoleMessages();

  console.log(JSON.stringify(error));
});

그러나 --skip-js-errors이것으로는 아무것도하지 않습니다. 이것에 대한 몇 가지 조언을 부탁드립니다!

내 목표는 명확하지 않은 경우를 대비하여 TestCafe 실행에서 가능한 JS 오류 확인 하여 로그하고 티켓을 만들 수 있지만 테스트 실행에 실패하는 것을 원하지 않습니다.

알렉스 카마 에프

TestCafe는 이러한 기능을 즉시 제공하지 않습니다. 올바르게 언급했듯이 --skip-js-errors플래그는 모든 오류를 무시하고 기록하지 않습니다.

그러나 스크립트 삽입 메커니즘을 사용하여 원하는 기능을 얻을 수 있습니다. 자세한 내용은 다음 문서를 참조하십시오 : https://devexpress.github.io/testcafe/documentation/using-testcafe/common-concepts/inject-scripts-into-tested-pages.html#inject-script-code

계속해서 --skip-js-errors플래그를 사용하고 커스텀 window.onerror핸들러를 추가하는 것이 좋습니다 . 예를 참조하십시오.

fixture `fixture`
    .page `../pages/index.html`;

test.clientScripts({
    content: `
        window.addEventListener('error', function (e) {
            console.error(e.message); 
        });`
})(`Skip error but log it`, async t => {
    console.log(await t.getBrowserConsoleMessages());
});

이 코드에서는 error이벤트 핸들러를 추가 합니다. 핸들러 내부에서 console.error메서드를 호출합니다 . 이 경우 t.getBrowserConsoleMessages올바른 오류 로그를 반환합니다.

이 접근 방식을 --skip-js-error플래그 와 함께 사용하십시오 . 따라서 명령은 다음과 같습니다 testcafe chrome test.js --skip-js-errors..

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Maven에서 패키지로 실행되는 JUnit 테스트를 지정하는 방법이 있습니까?

분류에서Dev

angular.js로 인해 다른 jQuery 플러그인이 실행되지 않고 콘솔에 오류가 발생하지 않을 수 있습니까?

분류에서Dev

tasksel에서 발생하는 설치 및 설치 오류를 캡처 / 로그하는 방법이 있습니까?

분류에서Dev

각 테스트에 대해 브라우저 인스턴스를 열어 각도기 테스트를 병렬로 실행하는 방법이 있습니까?

분류에서Dev

should.js로 인해 모카 테스트가 실패하지 않습니다.

분류에서Dev

Testcafe로 알파인 도커 이미지 내에서 전자를 실행하는 방법은 무엇입니까?

분류에서Dev

과제에 대해 숨겨진 테스트 사례를 확인하는 방법이 있습니까? 아래에 코드가 표시되어 있지만 숨겨진 테스트가 하나 실패했습니다.

분류에서Dev

시스템 호출이 실패 할 때 c 프로그램이 stderr에 오류 메시지를 인쇄하지 않는 이유는 무엇입니까?

분류에서Dev

VPN을 사용하면 "리소스에 대한 DNS 레코드를 찾지 못함"으로 인해 Testcafe 테스트가 실패하지만 VPN이 없으면 작동합니다.

분류에서Dev

Laravel에서이 로그인 오류를 해결하는 방법

분류에서Dev

참조 오류 응답 데이터를 해결하는 방법이 MEAN 스택 API 프로젝트에 정의되어 있지 않습니까?

분류에서Dev

텍스트를 전혀 해석하지 않는 텍스트 인쇄 응용 프로그램이 있습니까?

분류에서Dev

firebase 로그인에서 오류 처리로 오류를 발생시키는 방법이 있습니까?

분류에서Dev

Storm에는 시간 초과로 인해 실패한 튜플 수를 계산하는 방법이 있습니까?

분류에서Dev

WebGL 텍스처에 대한 이미지를로드하지만 CORS로 인해 실패했습니다.

분류에서Dev

사전 부팅 된 스프링 부트 서버에 대해 통합 테스트 스위트로 Karate 테스트를 실행하는 방법이 있습니까?

분류에서Dev

로그인 페이지의 오류를 해결하는 방법

분류에서Dev

js에서 치명적이지 않은 오류를 발견하는 올바른 방법이 있습니까?

분류에서Dev

사용자 계정에 로그인하지 않고 bashrc를 편집하는 방법이 있습니까?

분류에서Dev

Testcafe : 페이지간에 로그인 한 세션을 그대로 유지할 수있는 방법이 있나요?

분류에서Dev

A 계정에서 B 계정으로 AWS EC2 인스턴스를 실행 (이동)하는 방법은 있지만 IP는 변경되지 않습니까?

분류에서Dev

개체를 잘못 내보내고 있습니까? JS 초보자는 테스트가 실패한 이유를 이해하지 못합니다.

분류에서Dev

Cypress 테스트 중 Chrome 오류에 대한 해결 방법이 있습니까 : "대화 상자를 언로드하기 전에 사용자 제스처 필요"

분류에서Dev

AMD 로더에서 404 오류를 감지하는 방법이 있습니까?

분류에서Dev

팝업에서 로그인 한 WebPageTest로 페이지를 테스트하는 방법은 무엇입니까?

분류에서Dev

Linux가 USB 입력 장치를 키보드로 인식하는 것을 중지 할 수 있지만 여전히 프로그램으로 이벤트를 캡처 할 수 있습니까?

분류에서Dev

Angular Js에서이 오류를 제거하는 방법이 있습니까?

분류에서Dev

Webview에서 xamarin 로그인 페이지를 내 웹 사이트에 연결하는 방법이 있습니까?

분류에서Dev

이전에 캡처되지 않은 이전 캡처 그룹을 기반으로 Regex를 일치시키는 방법이 있습니까?

Related 관련 기사

  1. 1

    Maven에서 패키지로 실행되는 JUnit 테스트를 지정하는 방법이 있습니까?

  2. 2

    angular.js로 인해 다른 jQuery 플러그인이 실행되지 않고 콘솔에 오류가 발생하지 않을 수 있습니까?

  3. 3

    tasksel에서 발생하는 설치 및 설치 오류를 캡처 / 로그하는 방법이 있습니까?

  4. 4

    각 테스트에 대해 브라우저 인스턴스를 열어 각도기 테스트를 병렬로 실행하는 방법이 있습니까?

  5. 5

    should.js로 인해 모카 테스트가 실패하지 않습니다.

  6. 6

    Testcafe로 알파인 도커 이미지 내에서 전자를 실행하는 방법은 무엇입니까?

  7. 7

    과제에 대해 숨겨진 테스트 사례를 확인하는 방법이 있습니까? 아래에 코드가 표시되어 있지만 숨겨진 테스트가 하나 실패했습니다.

  8. 8

    시스템 호출이 실패 할 때 c 프로그램이 stderr에 오류 메시지를 인쇄하지 않는 이유는 무엇입니까?

  9. 9

    VPN을 사용하면 "리소스에 대한 DNS 레코드를 찾지 못함"으로 인해 Testcafe 테스트가 실패하지만 VPN이 없으면 작동합니다.

  10. 10

    Laravel에서이 로그인 오류를 해결하는 방법

  11. 11

    참조 오류 응답 데이터를 해결하는 방법이 MEAN 스택 API 프로젝트에 정의되어 있지 않습니까?

  12. 12

    텍스트를 전혀 해석하지 않는 텍스트 인쇄 응용 프로그램이 있습니까?

  13. 13

    firebase 로그인에서 오류 처리로 오류를 발생시키는 방법이 있습니까?

  14. 14

    Storm에는 시간 초과로 인해 실패한 튜플 수를 계산하는 방법이 있습니까?

  15. 15

    WebGL 텍스처에 대한 이미지를로드하지만 CORS로 인해 실패했습니다.

  16. 16

    사전 부팅 된 스프링 부트 서버에 대해 통합 테스트 스위트로 Karate 테스트를 실행하는 방법이 있습니까?

  17. 17

    로그인 페이지의 오류를 해결하는 방법

  18. 18

    js에서 치명적이지 않은 오류를 발견하는 올바른 방법이 있습니까?

  19. 19

    사용자 계정에 로그인하지 않고 bashrc를 편집하는 방법이 있습니까?

  20. 20

    Testcafe : 페이지간에 로그인 한 세션을 그대로 유지할 수있는 방법이 있나요?

  21. 21

    A 계정에서 B 계정으로 AWS EC2 인스턴스를 실행 (이동)하는 방법은 있지만 IP는 변경되지 않습니까?

  22. 22

    개체를 잘못 내보내고 있습니까? JS 초보자는 테스트가 실패한 이유를 이해하지 못합니다.

  23. 23

    Cypress 테스트 중 Chrome 오류에 대한 해결 방법이 있습니까 : "대화 상자를 언로드하기 전에 사용자 제스처 필요"

  24. 24

    AMD 로더에서 404 오류를 감지하는 방법이 있습니까?

  25. 25

    팝업에서 로그인 한 WebPageTest로 페이지를 테스트하는 방법은 무엇입니까?

  26. 26

    Linux가 USB 입력 장치를 키보드로 인식하는 것을 중지 할 수 있지만 여전히 프로그램으로 이벤트를 캡처 할 수 있습니까?

  27. 27

    Angular Js에서이 오류를 제거하는 방법이 있습니까?

  28. 28

    Webview에서 xamarin 로그인 페이지를 내 웹 사이트에 연결하는 방법이 있습니까?

  29. 29

    이전에 캡처되지 않은 이전 캡처 그룹을 기반으로 Regex를 일치시키는 방법이 있습니까?

뜨겁다태그

보관