programing

Travis/Jest:TypeError: 개체 '#'의 읽기 전용 속성 'Symbol(Symbol.toStringTag)'에 할당할 수 없습니다.

newnotes 2023. 3. 31. 22:38
반응형

Travis/Jest:TypeError: 개체 '#'의 읽기 전용 속성 'Symbol(Symbol.toStringTag)'에 할당할 수 없습니다.

나의 모든 것jest typescript테스트가 실패하다travis파이프라인에서 다음 오류가 발생했습니다.

TypeError: Cannot assign to read only property 'Symbol(Symbol.toStringTag)' of object '#<process>'

코드에 특별한 변경을 가하지 않고 갑자기 일어난 일입니다.그리고 지역적으로 모든 것이 잘 작동한다.

무슨 일이 일어나고 있는지 짐작 가는 거라도?

이것은 노드 v11.11에 부속된 버그입니다.v11.10으로 다운그레이드하거나 facebook이 이미 푸시한 수정(노드 버전 11.11 이상의 제스트 오류)을 기다릴 수 있습니다.

TravisCI와 관련된 문제인 경우 다음과 같이 작동하는 수정 버전을 설정할 수 있습니다.

node_js:
  - "11.10.1"

버전도 업그레이드할 수 있습니다.jest24.3.0으로 변경되어 이 문제가 해결되었습니다.이것은 노드를 다운그레이드 하는 것보다 장래성이 있는 솔루션이라고 생각합니다.

이 문제는 노드를 v11.12.0으로 업그레이드하는 것만으로 해결되었습니다.

위의 답변 중 어느 쪽도 문제를 해결할 수 없는 사용자는 농담을 ^24.3.0으로 업그레이드하고 클라이언트 컨테이너의 도커 이미지에 있는 노드 버전을 다운그레이드해 보십시오.나는 사용했다FROM node:11.10-alpine노드 Travis 버전을 다운그레이드하지 않고CI의 용도

이 문제에 대한 해결책은 주로 두 가지가 있었다.

  • joke 버전을 24.3.0으로 업그레이드합니다(나에게는 효과가 없었습니다).
  • 노드 버전을 11.10.1로 다운그레이드합니다.

노드 버전을 다운그레이드 하는 것은 좋은 솔루션이 아니지만 테스트를 실행하려는 사람은 시도해 볼 수 있습니다.노드 버전을 11.11.1에서11.10.1로 다운그레이드함으로써 패키지 설치 콜 "n"을 호출합니다.이 n 패키지는 Node.js 버전을 대화형으로 관리하는 데 도움이 됩니다.

npm install -g  n

설치 후 실행만 하면 됩니다.

sudo n 11.10.1

노드 버전이 변경되면 를 실행하여 노드 버전을 확인할 수 있습니다.

node --version

나중에 테스트를 실행할 수 있습니다.

npm test

도움이 됐으면 좋겠습니다:)

nvm(노드 버전 관리자)을 사용하는 경우

nvm install v11
nvm use v11

언급URL : https://stackoverflow.com/questions/55059748/travis-jest-typeerror-cannot-assign-to-read-only-property-symbolsymbol-tostr

반응형