Проблема vitest с файлом конфигурации «Ожидаемое выражение» Ошибка при тестировании компонента React

У меня возникла проблема при запуске тестов с помощью Vitest в проекте React. Тест завершается с ошибкой «Ожидается выражение», а добавление журналов консоли в тестовый файл не отображает никаких выходных данных, что указывает на то, что тест, возможно, вообще не выполняется.

вот конфигурация vite для vitest и файл setupTest

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

// https://vitejs.dev/config/
export default defineConfig({
    plugins: [react()],
    test: {
    globals:true,
        environment: "jsdom",
        setupFiles: ["./testSetup.js"],
    },
    server: {
        proxy: {
            "/api": {
                target: "http://localhost:3003",
                changeOrigin: true,
            },
        },
    },
});
import "@testing-library/jest-dom";
import { cleanup } from "@testing-library/react";
import { afterEach } from "vitest";

// runs a clean after each test case (e.g. clearing jsdom)
afterEach(() => {
    cleanup();
});

ошибка, отображаемая в терминале, такова:

Error: Expression expected
 ❯ getRollupError node_modules/vitest/node_modules/rollup/dist/es/shared/parseAst.js:392:41
 ❯ convertProgram node_modules/vitest/node_modules/rollup/dist/es/shared/parseAst.js:1056:26
 ❯ parseAstAsync node_modules/vitest/node_modules/rollup/dist/es/shared/parseAst.js:1898:93
 ❯ ssrTransformScript node_modules/vitest/node_modules/vite/dist/node/chunks/dep-D8YhmIY-.js:52863:11

Я попытался удалить глобальные переменные, но увидел эту ошибку:

 ❯ node_modules/@testing-library/jest-dom/dist/index.mjs:10:1
      8| import 'css.escape';
      9| 
     10| expect.extend(extensions);
       | ^
     11| 
 ❯ testSetup.js:3:31

также я пытаюсь заменить импорт "@testing-library/jest-dom"; импортировав "@testing-library/jest-dom/vitest", но та же проблема

Ваша проблема в точности совпадает с моей. Я изо всех сил пытаюсь найти решение. Единственный похожий вопрос предлагает удалить package-lock.json и node_modules. К сожалению, мне это ничего не дало.

Nicholas Kolatsis 23.07.2024 16:32
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
1
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, у меня была такая же проблема (Error: Expression expected), и вот что ее исправило. Файл, который вы тестируете, и тестовый файл должны иметь одинаковые расширения.

В моем случае у меня был файл компонента с именем CompleteChip.jsx и тестовый файл с именем CompleteChip.test.js. Что исправило ошибку, так это изменение расширения тестового файла на CompleteChip.test.jsx.

Другие вопросы по теме