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

Laravel-Vue单元测试错误"SynTaxError:意外令牌{"

林富
2023-03-14

我正在尝试为Vue编写单元测试,它是在Laravel环境中建立的。我按照这篇文章设置项目进行测试。但它并没有像预期的那样工作,我在运行npm测试时遇到了这个错误。

> @ test G:\Unit testing\Vue-Laravel
> mochapack --webpack-config=node_modules/laravel-mix/setup/webpack.config.js --require tests/js/setup.js tests/js/\*\*/\*.spec.js

(node:3224) UnhandledPromiseRejectionWarning: G:\Unit testing\Vue-Laravel\tests\js\setup.js:3
import { mount } from '@vue/test-utils';
       ^

SyntaxError: Unexpected token {
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at exports.requireOrImport (G:\Unit testing\Vue-Laravel\node_modules\mocha\lib\esm-utils.js:20:12)
    at Object.exports.handleRequires (G:\Unit testing\Vue-Laravel\node_modules\mocha\lib\cli\run-helpers.js:94:34)
    at mochaChecks (G:\Unit testing\Vue-Laravel\node_modules\mochapack\lib\cli\argsParser\parseArgv\mocha\parseMochaArgs.js:60:19)
(node:3224) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
 WEBPACK  Compiling...

  [=========================] 98% (after emitting)

 DONE  Compiled successfully in 198ms                                                                                          12:25:43 AM
  [=========================] 100% (completed)

 WEBPACK  Compiled successfully in 198ms

 MOCHA  Testing...



  0 passing (0ms)

 MOCHA  Tests completed successfully"
require('jsdom-global')();

import { mount } from '@vue/test-utils';
import expect from 'expect';
import App from '../../../resources/js/App.vue';

describe('App.vue', () => {
  it('says Hello Vue!', () => {
    const wrapper = mount(App);
    expect(wrapper.html()).toContain('Hello Vue!');
  });
});
<template>
  <div>
      <h1>
          {{ msg }}
      </h1>
  </div>
</template>

<script>
export default {
    name: 'app-component',
    data(){
        return {
            msg : "Hello Vue!"
        }
    }
}
</script>

此存储库包含整个代码。


共有1个答案

晏阳飙
2023-03-14

当我将测试代码提取到一个单独的文件时,这个问题得到了解决。

require('jsdom-global')();
import { mount } from '@vue/test-utils';
import expect from 'expect';
import App from '../../../resources/js/App.vue';

describe('App.vue', () => {
  it('says Hello Vue!', () => {
    const wrapper = mount(App);
    expect(wrapper.html()).toContain('Hello Vue!');
  });
});
{
   "test:unit": "cross-env NODE_ENV=testing mochapack --webpack-config=node_modules/laravel-mix/setup/webpack.config.js --require tests/Vue/Unit/setup.js tests/Vue/Unit/**/*.spec.js"
}
 类似资料:
  • 问题内容: 我不明白怎么了。我在其他论坛上讨论了翻译和通天塔。我需要做什么? 我的代码: 和错误 问题答案: ES6导入是最近引入的功能,并且Node的当前稳定版本尚不支持它们。Node.js问题跟踪器对此存在一个未解决的问题 -但在V8和Node添加对此功能的支持之前,您将需要使用编译器(最受欢迎的是babel)才能使用导入。 为了快速尝试转译,babel提供了基于Web的REPL。这段演示了您

  • 问题内容: 我目前正在练习使用Javascript / Dojo。但是,我有一个无法解决的错误: 未捕获的SyntaxError:意外令牌o 我已快速摘录了我的问题: 它专门针对以下方面: 我想知道为什么这是错误以及如何解决。 问题答案: 您正在尝试解析JavaScript对象。用于解析 表示 类似JavaScript的对象的JSON字符串。 只需完全跳过解析: 在相关说明中:您可能有兴趣阅读 “

  • 问题内容: 尝试进行呼叫并检索一个非常简单的一行JSON文件。 这是RAW请求: 这是RAW回应: 响应中返回了JSON(红色:#f00),但Chrome报告了 Uncaught SyntaxError:Unexpected token:colors.json:1 如果我直接导​​航到url本身,则返回JSON并显示在浏览器中。 如果我将colors.json的内容粘贴到JSLINT中,则json

  • 问题内容: 当我使用babel观看jsx文件时。但是存在语法错误。 在此之前,我使用react-tools进行观看,一切都很好。 以下是我的代码。 问题答案: 前几天我遇到了类似的问题。看来babel现在需要一些其他插件才能与react一起工作。

  • 当我运行测试时,代码中出现了“意外的令牌错误: 错误被抛出到“( 我写过笑话测试。这是我第一次使用酶和react编写测试用例。所以我不熟悉这个设置。我已经安装了:babel jest、react dom、babel插件转换导出扩展、enzyme-adapter-react-16、react测试渲染器、@babel/preset env和@babel/core package.json: jest.

  • 问题内容: 我是React + Webpack的初学者。 我在Hello World Web应用程序中发现一个奇怪的错误。 我在webpack中使用babel-loader来帮助我将jsx转换为js,但是babel似乎无法理解jsx语法。 这是我的依赖项: 这是我的 这是我的 这是错误消息 谢谢你们 问题答案: 添加“ babel-preset-react” 并在webpack.config.js