JEST和Vue.js失败:“插件/预设文件不允许导出对象,只能导出功能。”

时间:2019-03-01 14:30:09

标签: javascript unit-testing vue.js jestjs

  

大家好!

我开玩笑有问题。 我想用玩笑来测试view.js应用程序。 该应用程序已经非常先进。

我创建了一个非常简单的测试以了解操作,但是它始终会向我返回错误。

Jdbc

这是我的配置状态:

package.json

FAIL test/unit/specs/sum.test.js ● Test suite failed to run at createDescriptor (node_modules/@babel/core/lib/config/config-descriptors.js:178:11) at items.map (node_modules/@babel/core/lib/config/config-descriptors.js:109:50) at Array.map (<anonymous>) at createDescriptors (node_modules/@babel/core/lib/config/config-descriptors.js:109:29) at createPresetDescriptors (node_modules/@babel/core/lib/config/config-descriptors.js:101:10) at presets (node_modules/@babel/core/lib/config/config-descriptors.js:47:19) at mergeChainOpts (node_modules/@babel/core/lib/config/config-chain.js:320:26) at node_modules/@babel/core/lib/config/config-chain.js:283:7 at buildRootChain (node_modules/@babel/core/lib/config/config-chain.js:120:22) at loadPrivatePartialConfig (node_modules/@babel/core/lib/config/partial.js:85:55) 部分:

scripts

"scripts": { "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "start": "npm run dev", "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", "e2e": "node test/e2e/runner.js", "test": "jest", "lint": "eslint --ext .js,.vue src test/unit test/e2e/specs", "build": "node build/build.js" } 部分:

Jest

"jest": { "moduleFileExtensions": [ "js", "json", "vue" ], "transform": { ".*\\.(vue)$": "vue-jest", "^.+\\.js$": "<rootDir>/node_modules/babel-jest" }, "moduleNameMapper": { "^@/(.*)$": "<rootDir>/src/$1" } } 部分:

devDependencies

} }

要测试的功能

文件名"devDependencies": { "@vue/test-utils": "^1.0.0-beta.29", "autoprefixer": "^7.1.2", "babel-core": "^6.22.1", "babel-eslint": "^8.2.1", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-jest": "^24.1.0", "babel-loader": "^7.1.1", "babel-plugin-istanbul": "^4.1.1", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-runtime": "^6.22.0", "babel-plugin-transform-vue-jsx": "^3.5.0", "babel-preset-env": "^1.3.2", "babel-preset-stage-2": "^6.22.0", "babel-register": "^6.22.0", "chai": "^4.1.2", "chalk": "^2.0.1", "chromedriver": "^2.27.2", "copy-webpack-plugin": "^4.0.1", "cross-env": "^5.0.1", "cross-spawn": "^5.0.1", "css-loader": "^0.28.11", "eslint": "^4.15.0", "eslint-config-standard": "^10.2.1", "eslint-friendly-formatter": "^3.0.0", "eslint-loader": "^1.7.1", "eslint-plugin-import": "^2.7.0", "eslint-plugin-node": "^5.2.0", "eslint-plugin-promise": "^3.4.0", "eslint-plugin-standard": "^3.0.1", "eslint-plugin-vue": "^4.0.0", "extract-text-webpack-plugin": "^3.0.0", "file-loader": "^1.1.4", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^2.30.1", "inject-loader": "^3.0.0", "jest": "^24.1.0", "karma": "^1.4.1", "karma-coverage": "^1.1.1", "karma-mocha": "^1.3.0", "karma-phantomjs-launcher": "^1.0.2", "karma-phantomjs-shim": "^1.4.0", "karma-sinon-chai": "^1.3.1", "karma-sourcemap-loader": "^0.3.7", "karma-spec-reporter": "0.0.31", "karma-webpack": "^2.0.2", "mocha": "^3.2.0", "nightwatch": "^0.9.12", "node-notifier": "^5.1.2", "optimize-css-assets-webpack-plugin": "^3.2.0", "ora": "^1.2.0", "phantomjs-prebuilt": "^2.1.14", "portfinder": "^1.0.13", "postcss-import": "^11.0.0", "postcss-loader": "^2.0.8", "postcss-url": "^7.2.1", "rimraf": "^2.6.0", "selenium-server": "^3.0.1", "semver": "^5.3.0", "shelljs": "^0.7.6", "sinon": "^4.0.0", "sinon-chai": "^2.8.0", "style-loader": "^0.20.3", "stylus": "^0.54.5", "stylus-loader": "^3.0.2", "uglifyjs-webpack-plugin": "^1.1.1", "url-loader": "^0.5.8", "vue-jest": "^3.0.3", "vue-loader": "^13.3.0", "vue-style-loader": "^3.0.1", "vue-template-compiler": "^2.5.2", "webpack": "^3.6.0", "webpack-bundle-analyzer": "^2.9.0", "webpack-dev-server": "^2.9.1", "webpack-merge": "^4.1.0"

sum.js

必须测试该功能的文件

文件export default function sum (a, b) { return a + b }

sum.test.js

文件结构等等

import sum from '../../../src/components/sum'

describe('sum', () => {
  it('create sum of 2 numbrers', () => {
    expect(sum(15, 8)).toBe(23)
  })
})

1 个答案:

答案 0 :(得分:0)

您从未遇到过问题,所以我不知道这是否有帮助,但是:

"^.+\\.js$": "<rootDir>/node_modules/babel-jest"

这条线困扰我。如果我在自己的node_modules中本地安装babel-jest,则在node_modules/babel-jest/下有一个build文件夹,其中包含和index.jsnode_modules/babel-jest下没有可执行文件。也许这就是问题的根源。

我会尝试:

“ ^。+ \。js $”:“ babel-jest”

如果这不起作用,我会尝试:

"^.+\\.js$": "<rootDir>/node_modules/babel-jest/build"

祝你好运!