我真的只是想为我的图书馆建立一个 jest+vue 的框架,并迅速得到这个错误。我知道这个结构不是通常的笑话结构,我在这里尝试用一个辅助控件来描述一个测试。
这是我的test
文件夹的内容:arrays.specs.ts
和arrays.vue
这是配置:
module.exports = {
moduleFileExtensions: [
"js",
"ts",
"vue"
],
roots: [
"<rootDir>/test"
],
testEnvironment: "jest-environment-jsdom",
testMatch: [
"**/?(*.)+(spec|test).[tj]s?(x)"
],
transform: {
".*\\.(vue)$": "vue-jest",
".*\\.(ts)$": "ts-jest"
},
};
Run Code Online (Sandbox Code Playgroud)
我已经安装了这 3 个软件包:@vue/test-utils
,ts-jest
和vue-jest
现在,有了这个,我在运行 jest 时仍然会遇到这个错误:
test/arrays.spec.ts:4:20 - error TS2307: Cannot find module './arrays.vue'.
import Arrays from './arrays.vue'
Run Code Online (Sandbox Code Playgroud)
我真的不明白我错过了什么。
您可能缺少“垫片”文件。将其放入您的“src”目录中:
shims-vue.d.ts
declare module '*.vue' {
import Vue from 'vue';
export default Vue;
}
Run Code Online (Sandbox Code Playgroud)
小智 2
如果在 vue jest 测试中出现Cannot find module 问题,请按如下方式设置jest.config.js文件的预设属性。
module.exports = {
preset: '@vue/cli-plugin-unit-jest/presets/typescript-and-babel',
testEnvironment: 'node'
}
Run Code Online (Sandbox Code Playgroud)