我被分配了一项为 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' } …Run Code Online (Sandbox Code Playgroud)