Как я могу решить "TypeError: Невозможно установить свойство '_eventListeners' undefined" с помощью jest - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть приложение vue.js, и я установил Jest, используя следующие инструкции:

https://vue -test-utils.vuejs.org / guides / testing-single-file-components-с-jest.html .

когда я запускаю npm test , я получаю сообщение об ошибке.

● Test suite failed to run

TypeError: Cannot set property '_eventListeners' of undefined

  at Window.close (node_modules/jsdom/lib/jsdom/browser/Window.js:475:51)

Я сделал все в документах, и все остальное в приложении хорошо,кроме тестирования.Пожалуйста, как я могу решить эту проблему?

Это мой конфигурационный файл package.json:

{
  "name": "vendor",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "test": "jest"
  },
  "dependencies": {
    "babel-polyfill": "^6.26.0",
    "vue": "^2.5.22",
    "vue-router": "^3.0.2",
    "vuetify": "^1.3.0"
  },
  "devDependencies": {
    "vue-server-renderer": "^2.6.6",
    "babel-core": "^6.26.3",
    "@babel/core": "^7.2.2",
    "@babel/preset-env": "^7.3.1",
    "@vue/cli-plugin-babel": "^3.4.0",
    "@vue/cli-plugin-eslint": "^3.4.0",
    "@vue/cli-service": "^3.4.0",
    "@vue/server-test-utils": "^1.0.0-beta.29",
    "@vue/test-utils": "^1.0.0-beta.29",
    "babel-eslint": "^10.0.1",
    "babel-jest": "^24.1.0",
    "eslint": "^5.8.0",
    "eslint-plugin-vue": "^5.0.0",
    "gulp-babel": "^8.0.0",
    "jest": "^24.1.0",
    "jest-serializer-vue": "^2.0.2",
    "jsdom": "^13.2.0",
    "jsdom-global": "^3.0.2",
    "stylus": "^0.54.5",
    "stylus-loader": "^3.0.1",
    "vue-cli-plugin-vuetify": "^0.4.6",
    "vue-jest": "^3.0.3",
    "vue-template-compiler": "^2.6.5",
    "vuetify-loader": "^1.0.5"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "rules": {},
    "parserOptions": {
      "parser": "babel-eslint"
     }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ],
  "jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "vue"
    ],
    "transform": {
      ".*\\.(vue)$": "vue-jest",
      "^.+\\.js$": "<rootDir>/node_modules/babel-jest"
    },
    "moduleNameMapper": {
      "^@/(.*)$": "<rootDir>/src/$1"
    },
    "collectCoverage": true,
    "collectCoverageFrom": [
      "**/*.{js,vue}",
      "!**/node_modules/**"
    ],
    "coverageReporters": [
      "html",
      "text-summary"
    ],
    "snapshotSerializers": [
      "jest-serializer-vue"
    ]
  }
}
...