Day5 vitest 之 vitest前言配置补充

以前直接看配置选项,现在学聪明了~~~先概再细

有关于vitest的配置选项下次再发啦~~~~

每日语录:摆烂是自我保护机制,有效的努力,有效的摆烂,拒绝无效努力,更拒绝无效摆烂

使用vite作为构建工具

vitest支持与vite相同的配置文件扩展名,但不支持.json扩展

- .js- .mjs- .cjs- .ts- .cts
  • 首先

    • vitest将读取您的根vite.config.ts,以与插件匹配并设置为您的vite应用程序(vitest的优势之一)

      • 举例:

        • 您的vite resolve.alias和插件配置开箱即用
      • 配置要求

        • 需要在vite配置中添加test属性,

          • 如果你要从vite本身导入defineConfig,您还需要在配置文件顶部使用三斜杠指令添加对vitest类型的引用
          //使用vite中的dinfineConfig你应该遵循一下步骤:/// <reference types="vitest" />
          import { defineConfig } from 'vite'export default defineConfig({
            test: {
              // ... Specify options here.
            },
          })
          
  • 扩展

    • vitest还支持您在测试期间的不同的配置,以下方法均可:

      • 创建vitest.config.ts, 比vite.config.ts具有更高的优先级
      • 将 - config选项传递给cli ,例如vitest --config ./path/to/vitest.config.ts
      • 使用definConfig上的process.env.VITEST 或者 mode属性 (如果未覆盖则设置为test或者benchmark)有条件的应用vite.config.ts

不使用vite作为构建工具

  • 首先:可以使用配置文件的test属性来配置vitest

    //使用 vitest/config 中的 defineConfig 您应该遵循以下步骤:import {defineConfig} from "vitest/config"
    export  default defineConfig({
      test:{
      }
    })
    ​
    ​
    
  • 如果需要:您可以检索 Vitest 的默认选项来扩展它们

    import { configDefaults, defineConfig } from 'vitest/config'export default defineConfig({
      test: {
        exclude: [...configDefaults.exclude, 'packages/template/*'],
      },
    })
    

需要注意:即使不使用vite,vitest的转换管道严重依赖vite,因此您还可以配置vite文档中描述的任何属性

建议

如果你想要为vite和vitest使用两个单独的配置文件

  • 确保在vitest配置文件中定义相同的vite选项,因为他将覆盖您的vite文件,而不是扩展你的vite配置

如果你想要将vite配置与vitest配置合并

当使用单独的 vitest.config.js 时,如果需要,您还可以从另一个配置文件扩展 Vite 的选项:

  • 使用vite或者vitest/config条目中的merge方法将vite配置与vitest配置合并

    • 当你的vite配置不以函数形式导出的时候

      import {defineConfig,mergeConfig} from "vitest/config"
      import viteConfig from "./vite.config.mjs"export default mergeConfig(viteConfig,defineConfig({
        test:{
           exclude: ['packages/template/*'],
        }
      }))
      
    • 当你的vite配置以函数形式导出的时候

      import { defineConfig, mergeConfig } from 'vitest/config'
      import viteConfig from './vite.config'export default defineConfig(configEnv => mergeConfig(
        viteConfig(configEnv),
        defineConfig({
          test: {
            exclude: ['packages/template/*'],
          },
        })
      ))
      

mergeConfig 助手自 v0.30.0 起在 Vitest 中可用。如果您使用较低版本,可以直接从 vite 导入。

官方建议vite和vitest使用相同的文件,而不是创建两个单独的文件