简体   繁体   English

我无法通过 symfony/webpack-encore 使用 Jest 和 Vuejs 运行测试

[英]I can't run test using Jest and Vuejs with symfony/webpack-encore

I'm trying to implement a unit test using jest along side vuejs framework on symfony/webpack-encore, but after multiple attempts, I still get this error:我正在尝试在 symfony/webpack-encore 上使用 jest 和 vuejs 框架来实现单元测试,但经过多次尝试,我仍然收到此错误:

Jest encountered an unexpected token Jest 遇到了意外的令牌

This usually means that you are trying to import a file which Jest cannot parse, eg it's not plain JavaScript.这通常意味着您正在尝试导入 Jest 无法解析的文件,例如它不是普通的 JavaScript。

By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".默认情况下,如果 Jest 看到 Babel 配置,它将使用它来转换您的文件,而忽略“node_modules”。

import {进口 {
^ ^

SyntaxError: Unexpected token {语法错误:意外的令牌 {

20 | 20 |
21 | 21 | import * as THREE from 'three';从'三'导入*作为三;

22 | 22 | import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';从“三个/examples/jsm/loaders/GLTFLoader.js”导入{ GLTFLoader};
| | ^ ^

And here my.babelrc & package.json files:这里是 my.babelrc & package.json 文件:

.babelrc: .babelrc:

{
  "presets": [
    "env", 
    ["env", {
      "modules": false
    }],
    "stage-2",
    "vue"
  ],
  "plugins": ["transform-runtime", "transform-es2015-modules-commonjs"],
  "env": {
    "test": {
      "presets":[
        ["es2015", { "modules": false }],
        "vue",
        "stage-2"
      ],
      "plugins": [
        "transform-es2015-modules-commonjs",
        "dynamic-import-node"
      ]
    }
  }
}

package.json: package.json:

{
    "dependencies": {
        "bazinga-translator": "^2.6.6",
        "bootstrap": "^4.3.1",
        "driver.js": "^0.9.6",
        "highcharts": "^6.2.0",
        "jquery": "^3.3.1",
        "jquery-ui": "^1.12.1",
        "jquery.fancytree": "^2.30.2"
    },
    "devDependencies": {
        "@babel/core": "^7.7.0",
        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.2.0",
        "@babel/plugin-syntax-dynamic-import": "^7.2.0",
        "@babel/preset-env": "^7.7.1",
        "@babel/preset-stage-2": "^7.0.0",
        "@symfony/webpack-encore": "^0.27.0",
        "@vue/cli-plugin-babel": "^3.0.5",
        "@vue/cli-plugin-e2e-cypress": "^3.0.5",
        "@vue/cli-plugin-eslint": "^3.0.5",
        "@vue/cli-plugin-pwa": "^3.0.5",
        "@vue/cli-plugin-unit-jest": "^3.0.5",
        "@vue/cli-service": "^3.0.5",
        "@vue/test-utils": "^1.0.0-beta.29",
        "babel-jest": "^24.9.0",
        "babel-loader": "^8.0.6",
        "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
        "babel-preset-env": "^1.7.0",
        "babel-preset-es2015": "^6.24.1",
        "babel-preset-stage-0": "^6.24.1",
        "babel-preset-stage-2": "^6.24.1",
        "babel-preset-vue": "^2.0.2",
        "core-js": "^3.0.0",
        "expose-loader": "^0.7.5",
        "file-loader": "^4.2.0",
        "gltf-loader-2": "^0.0.3",
        "jest": "^24.9.0",
        "jest-serializer-vue": "^2.0.2",
        "jest-transform-stub": "^2.0.0",
        "jest-vue-preprocessor": "^1.7.0",
        "node-sass": "^4.12.0",
        "regenerator-runtime": "^0.13.2",
        "sass-loader": "^7.0.1",
        "stats.js": "^0.17.0",
        "three": "^0.110.0",
        "three-orbitcontrols": "^2.110.1",
        "transform-runtime": "^0.0.0",
        "url-loader": "^1.1.1",
        "vue": "^2.6.10",
        "vue-jest": "^3.0.5",
        "vue-loader": "^15.0.11",
        "vue-svg-loader": "^0.12.0",
        "vue-template-compiler": "^2.6.10",
        "webpack-notifier": "^1.6.0"
    },
    "scripts": {
        "dev-server": "encore dev-server",
        "dev": "encore dev",
        "watch": "encore dev --watch",
        "build": "encore production --progress",
        "test": "jest ./assets/src",
        "test:unit": "vue-cli-service test:unit"
    }
}

I did try with vue-cli but still got the same error at the same spot !我确实尝试过使用 vue-cli,但在同一个地方仍然遇到同样的错误!

Thanks,谢谢,

The issue was on importing three.js libraries, source: https://github.com/facebook/jest/issues/3905#issuecomment-323525803问题在于导入three.js库,来源: https://github.com/facebook/jest/issues/3905#issuecomment-323525803

Just by following this doc i was able to run my tests.只需遵循此文档,我就可以运行我的测试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM