私はプロジェクトを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_modules
vitest/config
configDefaults.exclude
node_modules
詳細は以下をご覧くださいここ公式文書に基づいて。
注: 22年12月14日にテストしました