Vitest - 特定のファイルやフォルダを除外するにはどうすればいいですか? 質問する

Vitest - 特定のファイルやフォルダを除外するにはどうすればいいですか? 質問する

私はプロジェクトをjestからvitestに移行しており、テストとカバレッジの両方で特定のファイルとフォルダを除外したいのですが、ドキュメントしかし、「除外」は機能していないようです。テストを実行するたびに、vitest は config フォルダーからのエラーをスローしますが、そこにはテスト ファイルはありません。config フォルダー内には、setupTests.ts や i18n 固有の構成を含む多数の構成ファイルがあり、エラーは i18n.ts ファイルから発生しています。私は vite 3 を使用しており、以下は私の vite 構成ファイルです。他にファイルとフォルダーを除外するにはどうすればよいですか?

環境:

  • ウィンドウズ11
  • ノード 16.14.0
  • ヴィテ 3.1.0
  • ビテスト 0.23.4
  • リスト項目

編集: 問題は、react-i18next をモックしている setupTests.ts ファイルにあることが判明しました。typescript の動作を無視して「const effective = await vi.importActual(''react-i18next''); return {...actual, ...}」を実行しようとすると、typescript がエラーをスローしていました。

vi.mock('react-i18next', () => ({
  ...vi.importActual('react-i18next'), // this didn't work
  useTranslation: () => [(key: any) => key],
}));


vi.mock('react-i18next', () => {
  const acutal = vi.importActual('react-i18next'), // this didn't work either
  return {
         ...actual, 
         useTranslation: () => [(key: any) => key],
   };
}); 



  vi.mock('react-i18next', async () => {
  const actual = await vi.importActual('react-i18next'); // this works
  return {
    // @ts-ignore  // have to put this here as typescript was complaining
    ...actual,
    useTranslation: () => [(key: any) => key],
  };
});

vite.config.ts

/// <reference types="vitest" />
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import tsconfigPaths from 'vite-tsconfig-paths';

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    react(),
    tsconfigPaths(),
  ],
  test: {
    globals: true,
    environment: 'jsdom',
    setupFiles: './src/config/setupTests.ts',
    css: true,
    mockReset: true,
    restoreMocks: true,
    clearMocks: true,
    include: ['./src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
    exclude: [
      '**/node_modules/**',
      '**/dist/**',
      '**/cypress/**',
      '**/.{idea,git,cache,output,temp}/**',
      './src/config/**',
    ],
    coverage: {
      exclude: ['./src/config'],
    },
  },
}); ```

ベストアンサー1

構成exclude内で属性を使用できます。test

ビテスト設定はファイルで変更できます。共有フォルダパッケージを除外したい場合は、以下のセクションにvitest.config.ts追加します。shared/*exclude

import { configDefaults } from 'vitest/config'

export default defineConfig({
  plugins: [react(), tsconfigPaths()],
  test: {
    exclude:[
      ...configDefaults.exclude, 
      'shared/*'
    ]
  },
});

ここには、パッケージから使用できるconfigDefaults除外されたデフォルト フォルダーが含まれます。省略すると、フォルダー内のチェックも実行されます。node_modulesvitest/configconfigDefaults.excludenode_modules

詳細は以下をご覧くださいここ公式文書に基づいて。

注: 22年12月14日にテストしました

おすすめ記事