我无法在带有symfony / webpack-encore的Jest和Vuejs上运行测试

我正在尝试在symfony / webpack-encore上使用jest和vuejs框架一起进行单元测试, 经过多次尝试,我仍然收到以下错误:

Jest encountered an unexpected token

This usually means that you are trying to import a file which Jest cannot parse,e.g. it's not plain JavaScript.

By default,if Jest sees a Babel config,it will use that to transform your files,ignoring "node_modules".


import {
       ^

SyntaxError: Unexpected token {

  20 | 
  21 | import * as THREE from 'three';
> 22 | import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
     | ^

这是我的.babelrc和package.json文件:

.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:

{
    "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"
    }
}

我确实尝试了vue-cli,但在同一地点仍然遇到相同的错误!

谢谢

qilixiang41 回答:我无法在带有symfony / webpack-encore的Jest和Vuejs上运行测试

问题出在导入three.js库上, 来源:https://github.com/facebook/jest/issues/3905#issuecomment-323525803

只需遵循此doc,我就可以运行测试。

本文链接:https://www.f2er.com/3152161.html

大家都在问