JEST单元测试脚本失败,出现TypeError:this._environment.runScript不是函数

mkshixfv  于 2023-05-27  发布在  Jest
关注(0)|答案(1)|浏览(324)

我被分配了一个为Vue应用程序设置Jest单元测试的任务。我有几次尝试完成它,并解决了几个问题的方式感谢其他问题在这里。但是,现在我在执行npm run test:unit(“test:unit”)时遇到了以下错误:“vue-cli-service test:unit”):

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)

以下是我添加到package.json中的Jest配置:

"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)"
    ]
  }

最初,我为testEnvironment设置了'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:this._environment.runScript不是函数。有人遇到过类似的问题吗?会很感激你的帮助。

mzsu5hc0

mzsu5hc01#

我也遇到了同样的错误,并通过设置相同版本的jestts-jest进行了修复。在我的情况下^27.1.1

相关问题