当前位置: 首页 > 知识库问答 >
问题:

Vue中带有外部模板文件的单元测试

汝宏伯
2023-03-14

我正在将vue cli与webpack模板一起使用,当我将模板文件拆分到不同的文件中,并运行npm run unitwarn run unit时,会出现以下错误:

$ yarn run unit
yarn run v0.21.3
$ cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run 
Hash: a52075458d6736c6b5a6
Version: webpack 2.4.1
Time: 2543ms
   Asset     Size  Chunks                    Chunk Names
index.js  1.05 MB       0  [emitted]  [big]  index.js
chunk    {0} index.js (index.js) 396 kB [entry] [rendered]
    [0] ./src/components/Hello.vue 1.63 kB {0} [built]
    [1] ./~/vue/dist/vue.esm.js 247 kB {0} [built]
    [2] ./src/router/index.js 1.51 kB {0} [optional] [built]
    [4] ./src/assets/logo.png 9.17 kB {0} [built]
    [5] ./src/App.vue 1.56 kB {0} [optional] [built]
    [8] (webpack)/buildin/global.js 509 bytes {0} [built]
    [9] ./src ^\.\/(?!main(\.js)?$) 324 bytes {0} [built]
   [10] ./test/unit/specs \.spec$ 177 bytes {0} [built]
   [11] ./test/unit/index.js 452 bytes {0} [built]
   [12] ./test/unit/specs/Hello.spec.js 573 bytes {0} [optional] [built]
   [13] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/App.vue 1.39 kB {0} [built]
   [14] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/Hello.vue 1.79 kB {0} [built]
   [24] ./~/vue-style-loader!./~/css-loader?{"minimize":false,"sourceMap":false}!./~/vue-loader/lib/style-compiler?{"id":"data-v-01ff506a","scoped":true,"hasInlineConfig":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/components/Hello.vue 1.66 kB {0} [built]
   [25] ./~/vue-style-loader!./~/css-loader?{"minimize":false,"sourceMap":false}!./~/vue-loader/lib/style-compiler?{"id":"data-v-bef6f4c0","scoped":false,"hasInlineConfig":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue 1.62 kB {0} [built]
   [27] ./src/components/Hello.pug 239 bytes {0} [optional] [built] [failed] [1 error]
     + 13 hidden modules

警告。/src/组件/Hello.pug模块解析失败: /home/jmanuelrosa/Developer/test-vue/src/components/Hello.pug意外令牌(1:0)您可能需要适当的加载器来处理此文件类型。|. hello|h1{{msg}}|h2 Essential Links@./src ^. /(?! main(. js)? $) @ ./test/Unit/index.js

我尝试使用基本的Hello示例,得到了相同的错误。我已经安装了pug(我的模板也安装了pug):

<template lang='pug' src='./Hello.pug'></template>

<script>
export default {
  name: 'hello',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
  font-weight: normal;
}

ul {
  list-style-type: none;
  padding: 0;
}

li {
  display: inline-block;
  margin: 0 10px;
}

a {
  color: #42b983;
}
</style>

和哈巴狗模板:

.hello
  h1 {{ msg }}
  h2 Essential Links
  ul
    li
      a(href='https://vuejs.org', target='_blank') Core Docs
    li
      a(href='https://forum.vuejs.org', target='_blank') Forum
    li
      a(href='https://gitter.im/vuejs/vue', target='_blank') Gitter Chat
    li
      a(href='https://twitter.com/vuejs', target='_blank') Twitter
    br
    li
      a(href='http://vuejs-templates.github.io/webpack/', target='_blank') Docs for This Template
  h2 Ecosystem
  ul
    li
      a(href='http://router.vuejs.org/', target='_blank') vue-router
    li
      a(href='http://vuex.vuejs.org/', target='_blank') vuex
    li
      a(href='http://vue-loader.vuejs.org/', target='_blank') vue-loader
    li
      a(href='https://github.com/vuejs/awesome-vue', target='_blank') awesome-vue

这个问题与#531有关

在这个问题上,用户说解决方案是更改扩展,并使用tpp.html,但是,与开发或环境有什么区别?我需要为因果报应安装另一个插件?

谢啦!

共有1个答案

梁宏才
2023-03-14

我解决它添加更多的装载机: D

module: {
  rules: [
    {
      test: /\.pug/,
      use: [
        'html-loader',
        'pug-loader?sourceMap'
      ]
    },
    {
      test: /\.css$/,
      use: [
        'style-loader',
        {
          loader: 'css-loader',
          options: {
            importLoaders: 1
          }
        },
        'postcss-loader'
      ]
    }
}
 类似资料:
  • 使用此答案中的代码解决单击组件外部的问题: 我不知道如何对不愉快的路径进行单元测试,以使警报不运行,目前为止我得到了什么: 我尝试过: 通过

  • 问题内容: 使用此答案中的代码来解决在组件外部单击的问题: 我不知道如何对不愉快的道路进行单元测试,以使警报不会运行,到目前为止,我得到了什么: 我试过了: 通过发送 节点并发送通过(不模拟) 荷兰国际集团在元件内部(不触发事件侦听器) 我确定我缺少一些小东西,但是我在任何地方都找不到这样的例子。 问题答案: import { mount } from ‘enzyme’ import React

  • 配置和工具 任何兼容基于模块的构建系统都可以正常使用,但如果你需要一个具体的建议,可以使用 Karma 进行自动化测试。它有很多社区版的插件,包括对 Webpack 和 Browserify 的支持。更多详细的安装步骤,请参考各项目的安装文档,通过这些 Karma 配置的例子可以快速帮助你上手(Webpack 配置,Browserify 配置)。 简单的断言 在测试的代码结构方面,你不必为了可测试

  • 问题内容: 我使用Underscore模板。是否可以将外部文件 附加 为模板 ? 在骨干视图中,我有: 在我的html中是: 它运作良好。但是 我需要外部模板 。我尝试: 要么 要么 但它没有用。 问题答案: 编辑:这个答案是旧的和过时的。 我将其删除,但这是“已接受”的答案。我会发表我的意见。 我不再提倡这样做。 相反,我会将所有模板都分成单独的HTML文件。有些人建议异步加载这些文件(Requ

  • 问题内容: 大部分Angular教程都讨论了通过Protractor使用端到端测试来测试编译后的模板是否按预期出炉。我想知道是否可以通过单元测试来做到这一点。 大多数讨论在单元测试中引用HTML代码的教程都描述了在测试中编译自己的书面代码,例如,以确保正确访问指令: 但是,假设我要测试实际模板文件中的代码。就像我想测试ng-hide是否成功设置一样。我希望能够执行以下操作: 我这样做时不起作用。被

  • 模板特化可以被显式声明,这可以作为消除多重实例化的一种方式。例如: #include "MyVector.h" extern template class MyVector<int>; // 消除下面的隐式实例化 // MyVector 类将在“其他地方”被程序员显式实例化 void foo(MyVector<int>& v) { //在这个地方使用vector类型 } 下列代码就是上例