vitest测试报错?
vitest测试报错?
按照这篇教程我配置了测试环境来测试react组件,但是报错了,不知道为什么?
环境的介绍
- 用
vite
来构建我们的项目 - 安装
vitest
、jsdom
、@testing-library/react
、@testing-library/jsdom
在根目录下创建
testSetup.js
import { afterEach } from 'vitest' import { cleanup } from '@testing-library/react' import '@testing-library/jest-dom/vitest' afterEach(() => { cleanup() })
修改
vite.config.js
export default defineConfig({ // ... test: { environment: 'jsdom', globals: true, setupFiles: './testSetup.js', } })
修改
package.json
文件scripts: { ... test: "vitest run" }
React组件
// src/component/Note.jsx const Note = ({ note, toggleImportance }) => { const label = note.important ? "make not important" : "make important"; return ( <li className="note"> {note.content} <button onClick={toggleImportance}>{label}</button> </li> ); }; export default Note;
测试
// src/component/Note.test.js
import { render, screen } from "@testing-library/react";
import Note from "./Note";
test("renders content", () => {
const note = {
content: "Component testing is done with react-testing-library",
important: true,
};
render(<Note note={note} />);
const element = screen.getByText(
"Component testing is done with react-testing-library"
);
expect(element).toBeDefined();
});
报错
Error: Expression expected ❯ getRollupError node_modules/vitest/node_modules/rollup/dist/es/shared/parseAst.js:376:41 ❯ convertProgram node_modules/vitest/node_modules/rollup/dist/es/shared/parseAst.js:1040:26 ❯ parseAstAsync node_modules/vitest/node_modules/rollup/dist/es/shared/parseAst.js:2186:12 ❯ ssrTransformScript node_modules/vitest/node_modules/vite/dist/node/chunks/dep-jvB8WLp9.js:54248:15
猜测:是不是和jsx语法有关? 我注释掉render及之后的操作是不会报错的,只注释render之后的操作会报错,这个错误应该出现在render的调用过程中。
回复
1个回答
test
2024-06-20
打上断点调试了一下,提示说遇到了一个非预期的token<
,说明它没法识别jsx
语法。我的文件名后缀为js
,改成jsx
就不报错了(又大意了)
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容