我被分配了一个为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不是函数。有人遇到过类似的问题吗?会很感激你的帮助。
1条答案
按热度按时间mzsu5hc01#
我也遇到了同样的错误,并通过设置相同版本的
jest
和ts-jest
进行了修复。在我的情况下^27.1.1
。