我正在尝试将 Jest 引入我当前的项目。
\n然而,在初始设置过程中,我遇到了这个错误,并且无法正常运行。
\n我该如何解决这个问题?
\n我目前正在使用 vue-cli 中的 vue2。
\n\xe2\x97\x8f Test suite failed to run\n\n TypeError: Cannot read properties of undefined (reading 'html')\n\n at new JSDOMEnvironment (node_modules/jest-environment-jsdom/build/index.js:72:44)\n at async TestScheduler.scheduleTests (node_modules/@jest/core/build/TestScheduler.js:317:13)\n at async runJest (node_modules/@jest/core/build/runJest.js:407:19)\n at async _run10000 (node_modules/@jest/core/build/cli/index.js:338:7)\n at async runCLI (node_modules/@jest/core/build/cli/index.js:190:3)\nRun Code Online (Sandbox Code Playgroud)\n这是我的测试代码。
\nimport SettlementProcessing from "@/views/calculate/SettlementProcessing.vue";\nimport { shallowMount } from "@vue/test-utils";\nimport Vuetify from "vuetify";\ndescribe("Settlement Component", () => {\n let vuetify;\n beforeEach(() => {\n vuetify = new Vuetify();\n });\n it("\xec\xa0\x95\xec\x82\xb0 \xec\xb2\x98\xeb\xa6\xac \xed\x83\x80\xec\x9d\xb4\xed\x8b\x80\xec\x9d\xb4 \xeb\x82\x98\xec\x99\x80\xec\x95\xbc …Run Code Online (Sandbox Code Playgroud) 我们正在将 Jest 引入现有项目。
不过,我写了一个示例测试代码。出现上述错误。
ReferenceError: Vue is not defined
1 | import User from "../components/modal/ad/AdAdd";
> 2 | import { mount } from "@vue/test-utils";
| ^
3 |
4 | describe("user component", () => {
5 | let wrapper;
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
ReferenceError: Vue is not defined
1 | import User from "../components/modal/ad/AdAdd";
> 2 | import { mount } from "@vue/test-utils";
| ^
3 |
4 | describe("user component", () => {
5 | let wrapper;
Run Code Online (Sandbox Code Playgroud)
//User.test.js
import User from "../components/modal/ad/AdAdd"; …Run Code Online (Sandbox Code Playgroud) 我有以下依赖性...
"vue-jest": "latest",
Run Code Online (Sandbox Code Playgroud)
但当我跑步时npm install我发现...
npm WARN ERESOLVE overriding peer dependency
npm WARN Found: vue@3.1.4
npm WARN node_modules/vue
npm WARN vue@"latest" from the root project
npm WARN 7 more (@headlessui/vue, @heroicons/vue, @vue/compiler-sfc, ...)
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer vue@"^2.x" from vue-jest@3.0.7
npm WARN node_modules/vue-jest
npm WARN dev vue-jest@"latest" from the root project
Run Code Online (Sandbox Code Playgroud)
我查看了代码,看到一个名为vue3-jest的库,但在 npm 中不可用...
获取使用 vue3 的 vue-jest 版本的正确方法是什么?
我的项目正在运行node-sass,但我决定将其更改为sass(dart-sass),因为我想避免安装python、g++并make只是为了运行npm install,而node-sass会因为node-gyp而强制你这样做。
\n所以我跑了
\n$ npm uninstall node-sass\n$ npm install sass\nRun Code Online (Sandbox Code Playgroud)\n运行npm run build( vue-cli-service build) 工作正常,但我的持续集成在npm run test:unit( vue-cli-service test:unit) 上失败。
这是完整的错误:
\n FAIL tests/unit/example.spec.ts\n\xe2\x97\x8f Test suite failed to run[vue-jest] \nError: You are trying to use "scss". node-sass is missing.\n\n To install run: \nnpm install --save-dev node-sass\nat error (node_modules/vue-jest/lib/throw-error.js:2:9)\nat module.exports (node_modules/vue-jest/lib/ensure-require.js:38:5) at module.exports (node_modules/vue-jest/lib/compilers/scss-compiler.js:20:3)\nat processStyleByLang (node_modules/vue-jest/lib/process-style.js:11:82)\nat processStyle (node_modules/vue-jest/lib/process-style.js:20:17)\nat node_modules/vue-jest/lib/process.js:93:13\nat Array.map (<anonymous>)\nat Object.module.exports [as process] (node_modules/vue-jest/lib/process.js:90:8)\nTest Suites: 1 failed, 1 total\nTests: …Run Code Online (Sandbox Code Playgroud)