programing

JEST 유닛 테스트스크립트가 TypeError: this로 실패합니다._environment.runScript는 함수가 아닙니다.

firstcheck 2022. 7. 16. 08:30
반응형

JEST 유닛 테스트스크립트가 TypeError: this로 실패합니다._environment.runScript는 함수가 아닙니다.

저는 Vue 어플리케이션의 Jest 유닛 테스트 셋업을 맡았습니다.나는 그것을 이루기 위해 여러 번 시도했고 여기 있는 다른 질문들 덕분에 도중에 몇 가지 문제들을 해결했다.하지만, 지금은, 다음의 에러에 시달리고 있습니다.npm run test:unit("test: 유닛": "vue-cli-service test: 유닛")

TypeError: this._environment.runScript is not a function

  at Runtime._execModule (node_modules/@vue/cli-plugin-unit-jest/node_modules/jest-runtime/build/index.js:856:41)

패키지에 추가한 Jest 설정을 다음에 나타냅니다.json:

"jest": {
    "testEnvironment": "jsdom",
    "preset": "ts-jest",
    "moduleNameMapper": {
      "\\.(css|less|sass|scss)$": "<rootDir>/tests/mocks/styleMock.js",
      "^@/(.*)$": "<rootDir>/src/$1"
    },
    "transform": {
      "<rootDir>/src/data/.+\\.(j|t)sx?$": "ts-jest",
      ".*\\.(vue)$": "vue-jest",
      ".*\\.(js)$": "babel-jest"
    },
    "transformIgnorePatterns": [
      "/node_modules/(?!vuetify)",
      "<rootDir>/src/(?!data/.*)"
    ],
    "testPathIgnorePatterns": [
      "/node_modules/(?!vuetify)"
    ]
  }

원래 test Environment는 'node'를 가지고 있었습니다.하지만 이건 내가 맡을게_environment.runScript는 처음 기능 오류가 아닙니다.대신 'jsdom'을 사용할 수 있다고 읽었어요.이를 위해 babel.config.js를 업데이트했습니다.

module.exports = {
   env: {
     test: {
       presets: [['env', { targets: { node: 'current' } }]],
       plugins: ['@babel/plugin-transform-modules-commonjs'],
     },
   },
}

그러나 이로 인해 babel-preset-env 모듈이 누락되었다는 오류가 발생하였습니다.제가 알기로는 이 모듈은 더 이상 독립형 모듈이 아닙니다.그래서 babel.config.js를 변경했습니다.

module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        modules: 'commonjs',
        targets: {
          node: 'current',
        },
      },
    ],
  ],
}

이제 TypeError로 돌아갑니다.이것._environment.runScript는 함수가 아닙니다.비슷한 문제가 발생한 적이 있습니까?도와주시면 감사하겠습니다.

언급URL : https://stackoverflow.com/questions/71117593/jest-unit-test-script-fails-with-typeerror-this-environment-runscript-is-not-a

반응형