Unit testing Error:Error:the";“文件名”;选项必须使用包含和扩展,并带有“扩展”;相对的;路径

Unit testing Error:Error:the";“文件名”;选项必须使用包含和扩展,并带有“扩展”;相对的;路径,unit-testing,vue.js,webpack,pug,jestjs,Unit Testing,Vue.js,Webpack,Pug,Jestjs,我将Vue与webpack模板一起使用,并尝试使用Jest运行测试。我还使用帕格来渲染模板 但当我运行测试时,我得到了错误: [vue-jest] Error: Error: the "filename" option is required to use includes and extends with "relative" paths at undefined line 2 at error (node_modules/vue-jest/lib/throw-error.js

我将Vue与webpack模板一起使用,并尝试使用Jest运行测试。我还使用帕格来渲染模板

但当我运行测试时,我得到了错误:

[vue-jest] Error: Error: the "filename" option is required to use includes and extends with "relative" paths
    at undefined line 2


  at error (node_modules/vue-jest/lib/throw-error.js:2:9)
  at module.exports (node_modules/vue-jest/lib/compilers/pug-compiler.js:11:5)
  at getTemplateContent (node_modules/vue-jest/lib/template-compiler.js:11:12)
  at compileTemplate (node_modules/vue-jest/lib/template-compiler.js:23:25)
  at Object.module.exports [as process] (node_modules/vue-jest/lib/process.js:70:29)
在未测试的文件上运行覆盖率…无法从/Users/magno.sousa/Documents/playerds/vue-test/vuetest/src/components/HelloWorld.vue收集覆盖率 错误: [vue jest]错误:错误:“文件名”选项是使用包含和扩展“相对”路径所必需的 在未定义的第2行

at error (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/throw-error.js:2:9)
at module.exports (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/compilers/pug-compiler.js:11:5)
at getTemplateContent (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/template-compiler.js:11:12)
at compileTemplate (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/template-compiler.js:23:25)
at Object.module.exports [as process] (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/process.js:70:29)
at ScriptTransformer.transformSource (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest-runtime/build/script_transformer.js:247:35)
at exports.default (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest/node_modules/jest-cli/build/generate_empty_coverage.js:16:105)
at Object.worker (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest/node_modules/jest-cli/build/reporters/coverage_worker.js:48:84)
at execMethod (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest-worker/build/child.js:83:29)
at process.on (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest-worker/build/child.js:40:7)
堆栈:错误: [vue jest]错误:错误:“文件名”选项是使用包含和扩展“相对”路径所必需的 在未定义的第2行

at error (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/throw-error.js:2:9)
at module.exports (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/compilers/pug-compiler.js:11:5)
at getTemplateContent (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/template-compiler.js:11:12)
at compileTemplate (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/template-compiler.js:23:25)
at Object.module.exports [as process] (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/vue-jest/lib/process.js:70:29)
at ScriptTransformer.transformSource (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest-runtime/build/script_transformer.js:247:35)
at exports.default (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest/node_modules/jest-cli/build/generate_empty_coverage.js:16:105)
at Object.worker (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest/node_modules/jest-cli/build/reporters/coverage_worker.js:48:84)
at execMethod (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest-worker/build/child.js:83:29)
at process.on (/Users/magno.sousa/Documents/playground/vue-test/vuetest/node_modules/jest-worker/build/child.js:40:7)
这是我的Vue组件


包括HelloWorld.pug
导出默认值{
名称:“HelloWorld”,
数据(){
返回{
msg:'欢迎使用您的Vue.js应用程序'
}
}
}

我认为您应该指定
baseDir
以便能够在jest测试中使用
include\extends
,并在您的tempaltes中包含文件,如
include/HelloWorld.pug

说句笑话,它应该是:

'vue-jest': {
  pug: {
    baseDir: path.join(__dirname, 'my/folder/with/views');
  }
 },

p.S.此外,您的pug加载器网页配置也应该更改(我认为pug加载器选项的
root
属性).

我认为您应该指定
baseDir
,以便能够在jest测试中使用
include\extends
,并在临时文件中包含文件,如
include/HelloWorld.pug

说句笑话,它应该是:

'vue-jest': {
  pug: {
    baseDir: path.join(__dirname, 'my/folder/with/views');
  }
 },

p.S.此外,您的pug loader网页包配置也应该更改(我认为pug loader选项的
root
属性)。

您需要在jest配置的全局属性下设置
vue jest
参数:

"jest": {
  "globals": {
    "vue-jest": {
      "pug": {
        "basedir": "./"
      }
    }
  },

您需要在jest配置的全局属性下设置
vue jest
params:

"jest": {
  "globals": {
    "vue-jest": {
      "pug": {
        "basedir": "./"
      }
    }
  },

我做了更改,但现在我得到:
ERROR:[vue jest]ERROR:ERROR:basedir选项必须在未定义的第2行堆栈中使用包含和扩展的“绝对”路径:ERROR:[vue jest]ERROR:ERROR:basedir选项必须使用包含和扩展的“绝对”路径未定义第2行的路径
您的
vue jest
jest
版本是什么?我刚刚用pug模板设置了Vue project,即使在
include
“Vue jest”:“^1.0.2”和“jest”:“^22.0.4”中使用相对路径,它也可以正常工作。您可以共享您的配置吗?请尝试将
Vue jest
更新为2.6.0和jest,从
jest.config.js
中删除
vue jest
部分,并使您的
inlcude
(如在您的问题示例中)相对,我认为它会起作用。我做了更改,但现在我得到:
ERROR:[vue jest]ERROR:ERROR:basedir选项必须使用带有“绝对”的includes和extens未定义第2行堆栈中的路径:错误:[vue jest]错误:错误:“basedir”选项需要在未定义第2行使用包含和扩展“绝对”路径
您的
vue jest
jest
版本是什么?我刚刚用pug模板设置了Vue project,即使在
include
“Vue jest”:“^1.0.2”和“jest”:“^22.0.4”中使用相对路径,它也可以正常工作。您可以共享您的配置吗?请尝试将
Vue jest
更新为2.6.0和jest,从
jest.config.js
中删除
vue jest
部分,并将您的
inlcude
(如您的问题示例中)设置为相对的,我认为它会起作用。