Как написать модульный тест для компонентов с помощью vitest в Nuxt 3?
Я пытаюсь перейти с Vue 3 на Nuxt 3. Я написал модульные тесты для своих компонентов, используя vitest, которые отлично работают в моем приложении Vue , но тот же тест в приложении Nuxt дает мне следующую ошибку:
Ошибка: не удалось проанализировать источник для анализа импорта, поскольку содержимое содержит недопустимый синтаксис JS.
Установите @vitejs/plugin-vue для обработки файлов .vue.
я установил
@vitejs/plugin-vue
как зависимость развития, но ничего не произошло.
Вот пример моих тестовых файлов:
import { describe, it, expect } from "vitest";
import { mount } from "@vue/test-utils";
import AtomsButton from "./AtomsButton.vue";
describe("AtomsButton", () => {
it("button renders properly", () => {
const wrapper = mount(AtomsButton, { slots: { default: "Button" } });
expect(wrapper.html()).toContain("Button");
});
});
Вот мой
package.json
файл:
{
"private": true,
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"test:unit": "vitest --environment jsdom"
},
"devDependencies": {
"@nuxt/test-utils-edge": "^3.0.0-rc.3-27571095.9379606",
"@vitejs/plugin-vue": "^2.3.3",
"@vue/test-utils": "^2.0.0",
"jsdom": "^19.0.0",
"nuxt": "3.0.0-rc.3",
"vitest": "^0.13.1"
}
}
Я понятия не имею, что я делаю неправильно. Любая помощь будет оценена по достоинству.
1 ответ
Я тоже боролся с этим и смог заставить его работать, используя настраиваемый файл конфигурации Vite только для Vitest.
package.json
файл :
{
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"test:unit": "vitest --config ./vitest.config.js",
"preview": "nuxt preview"
},
"devDependencies": {
"@nuxtjs/tailwindcss": "^5.1.2",
"@vitejs/plugin-vue": "^2.3.3",
"@vue/test-utils": "^2.0.0",
"jsdom": "^19.0.0",
"nuxt": "3.0.0-rc.4",
"vitest": "^0.14.2"
}
}
vitest.config.js
файл :
import vue from '@vitejs/plugin-vue';
export default {
plugins: [vue()],
test: {
globals: true,
environment: 'jsdom',
},
}