2017-12-18 4 views
0

내 응용 프로그램에 대한 단위 테스트를 실행할 때이 이상한 오류와 함께 싸우고 있습니다.각도에서 카르마 테스트를 실행할 때 "잡히지 않은 [object Object]"

zone.js:260 Uncaught [object Object] thrown 
Zone.runTask @ zone.js:260 
ZoneTask.invoke @ zone.js:423 

어떤 테스트가 실패하는지 알 수 없으므로 콘솔에서만 오류가 삭제됩니다. 테스트가 문제없이 작동하는 것은 내 지역에서 일어나지 않습니다.

오류가 발생하기 전에 "스크립트 오류"오류가 발생했지만 ChromeHeadless에 대해 --disable-web-security 플래그로 해결했습니다. 이 새로운 오류와 관련이 있는지는 잘 모릅니다.

로캘과 원격은 모두 Linux입니다.

+0

이것을 알아 냈습니까? – Justin

+0

@Justin 마침내 나는 그것을 해결했다. MockBackend 모듈에 문제가있는 것처럼 보였습니다. 사용하지 않으면 오류가 표시되지 않습니다. 방금 HTTP 호출을 테스트하는 데 다른 방법을 사용했습니다. –

+0

우리는 또한 HTTP 요청에이 문제를 추적했습니다. 답변보기 : https://stackoverflow.com/questions/48101519/karma-start-fails-headlesschrome-error-uncaught-object-object?noredirect=1&lq=1 – Justin

답변

0

원격 또는 다른 버전의 전역 npm 패키지에 다른 버전의 모듈을 설치했을 수 있습니다. 종속성의 모든 일치하지 않는 버전은 두 시스템 중 하나에서 다른 결과를 산출 할 수 있습니다.

는 두 시스템에 NPM 캐시를 제거

:

npm cache clean 

이 두 시스템에 node_modules를 다시 설치

rm -fr node_modules 
npm install 

로컬 NPM 패키지는 각 시스템에서 동일한 확인

npm list --depth=0 

글로벌 패키지 버전이 동일한 지 확인하십시오. 다음과 같은 글로벌 패키지를 나열 할 수 있습니다.

npm list -g --depth=0 

일단 모든 것이 같으면. 두 시스템에서 같은 결과가 나타납니다. 그 작동하는 경우 다음, 카르마에게

karma start 

을 실행 개별적으로 각 테스트를 실행하려고하여

시작.

karma run -- --grep=search_string 

오류로 인해 카르마가 시작되지 않는 경우. 시작 스크립트에서 테스트를 확인하고 Angular app에서 모듈을 주석 처리 할 수 ​​있는지 확인하십시오. 카르마를 실행할 때까지 의존성을 줄이십시오. 가해자를 찾을 때까지 천천히 종속품을 다시 소개하십시오.

관련 문제