在 vue2 项目中使用 vitest 进行单元测试是可以的,
但是再安装 vue test utils 1.x 进行组件测试就会有问题,报错

Failed to parse source for import analysis because the content contains invalid JS syntax. Install @vitejs/plugin-vue to handle .vue files.

然而提示信息 @vitejs/plugin-vue 是适用于 vue3 的。

vue test utils 官网里给的方案里没有适用于 vitest 的,请问友友们有解决方案吗?如何在vue2 项目(vuecli 搭建)中使用 vitest 和 vue test utils?

在 Vue 2 项目中,可以使用 Vue Test Utils 进行组件测试,而不需要使用 Vite 或 @vitejs/plugin-vue。

首先,确保你已经安装了 Vue Test Utils 的适合 Vue 2 的版本。可以通过以下命令进行安装:

npm install @vue/test-utils@1.x --save-dev

然后,你可以在 Vue 2 项目中使用 Vue Test Utils 进行组件测试。以下是一个简单的示例:

  1. 创建一个组件文件 HelloWorld.vue
<template>
  <div class="hello-world">
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
export default {
  data() {
    return {
      msg: 'Hello, World!'
    }
  }
}
</script>
  1. 创建一个测试文件 HelloWorld.spec.js
import { shallowMount } from '@vue/test-utils';
import HelloWorld from './HelloWorld.vue';

describe('HelloWorld.vue', () => {
  it('renders the correct message', () => {
    const wrapper = shallowMount(HelloWorld);
    expect(wrapper.find('h1').text()).toBe('Hello, World!');
  });
});

在这个测试文件中,我们使用 shallowMount 方法来浅渲染组件,并对组件进行断言。

运行测试命令(例如:npm run test),你应该能够看到测试运行成功,而不会报错关于 Vite 或 @vitejs/plugin-vue 的错误。

请注意,以上示例中的测试代码是使用 Vue Test Utils 的 1.x 版本编写的。如果你使用的是不同的版本,请适当调整代码。

希望这个解决方案能满足你的需求。如果你还有其他问题,请随时提问。