Tol*_*iNY 8 javascript unit-testing jestjs vuejs2
我被分配了一项为 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)
Run Code Online (Sandbox Code Playgroud)
以下是我添加到 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)"
]
}
Run Code Online (Sandbox Code Playgroud)
最初,我有用于测试环境的“节点”。但我第一次收到 this._environment.runScript is not a function 错误。我读到可以使用“jsdom”代替。为此我更新了 babel.config.js:
module.exports = {
env: {
test: {
presets: [['env', { targets: { node: 'current' } }]],
plugins: ['@babel/plugin-transform-modules-commonjs'],
},
},
}
Run Code Online (Sandbox Code Playgroud)
但这导致错误提示 babel-preset-env 模块丢失。据我了解,该模块不再是一个独立的模块。所以,我改变了 babel.config.js:
module.exports = {
presets: [
[
'@babel/preset-env',
{
modules: 'commonjs',
targets: {
node: 'current',
},
},
],
],
}
Run Code Online (Sandbox Code Playgroud)
现在我又回到了 TypeError:this._environment.runScript 不是一个函数。有人遇到过类似的问题吗?将不胜感激您的帮助。
| 归档时间: |
|
| 查看次数: |
3904 次 |
| 最近记录: |