vitest测试报错?
vitest测试报错?
按照这篇教程我配置了测试环境来测试react组件,但是报错了,不知道为什么?
环境的介绍
- 用
vite来构建我们的项目 - 安装
vitest、jsdom、@testing-library/react、@testing-library/jsdom 在根目录下创建
testSetup.jsimport { afterEach } from 'vitest' import { cleanup } from '@testing-library/react' import '@testing-library/jest-dom/vitest' afterEach(() => { cleanup() })修改
vite.config.jsexport 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 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容