Files
vitest/test/e2e/vitest.config.ts

105 lines
2.7 KiB
TypeScript

import path from 'node:path'
import { defineConfig } from 'vite'
import { defaultExclude } from 'vitest/config'
// Tests that drive git `--changed` against shared fixtures and cannot tolerate
// other tests mutating the working tree concurrently. Run in a serial project.
const serialTests = [
'test/git-changed.test.ts',
'test/list-changed.test.ts',
'test/setup-files.test.ts',
'test/watch/related.test.ts',
]
export default defineConfig({
test: {
fsModuleCache: true,
reporters: [
process.env.CI ? 'minimal' : 'verbose',
(process.env.VITEST_CI_BLOB_LABEL
? ['blob', { label: process.env.VITEST_CI_BLOB_LABEL }]
: {}),
(process.env.VITEST_CI_MERGE_REPORTS
? ['html', { singleFile: true }]
: {}),
],
onConsoleLog(log) {
if (log.includes('watcher is ready')) {
return false
}
},
tags: [
{ name: 'browser', timeout: 60_000 },
],
projects: [
{
extends: true,
test: {
name: 'main',
include: ['test/**/**.{test,spec}.ts'],
exclude: [...defaultExclude, ...serialTests],
includeTaskLocation: true,
testTimeout: 60_000,
isolate: false,
fileParallelism: true,
maxWorkers: Number(process.env.VITEST_E2E_MAX_WORKERS) || 2,
// TODO: should enabled when support for older node is dropped?
// experimental: {
// viteModuleRunner: false,
// nodeLoader: false,
// },
chaiConfig: {
truncateThreshold: 999,
},
typecheck: {
enabled: true,
include: [
'./test/reporters/configuration-options.test-d.ts',
'./test/benchmarking.test-d.ts',
'./test/config-types.test-d.ts',
],
},
sequence: {
groupOrder: 0,
},
},
},
{
extends: true,
test: {
name: 'snapshots',
root: path.join(import.meta.dirname, 'snapshots'),
exclude: ['**/fixtures/**', ...defaultExclude],
testTimeout: process.env.CI ? 20_000 : undefined,
sequence: {
groupOrder: 1,
},
},
},
{
extends: true,
test: {
name: 'serial',
include: serialTests,
includeTaskLocation: true,
testTimeout: 60_000,
isolate: false,
fileParallelism: false,
sequence: {
groupOrder: 2,
},
},
},
],
},
server: {
watch: {
ignored: [
'**/vitest-test-*/**',
'**/fixtures/browser-init/**/*',
'**/package.json',
],
},
},
})