Numil
Numil
NNuxt
Created by Numil on 1/10/2025 in #❓・help
Vitest slow tests compared to jest
Hey, I can't really share more than the config i got right after this message, but we switched from Jest to Vitest for our tests (vitests with nuxt environment ofc) and the speed for the tests really increased, i wanted to know if it a slower execution was to be expected or not ? (it more that quadrupled so i guess we have other problems, and running with --pool=forks didn't change anything)
// vitest.config.ts
import { defineVitestConfig } from '@nuxt/test-utils/config'
import { configDefaults } from 'vitest/config'

export default defineVitestConfig({
test: {
fakeTimers: {
...configDefaults.fakeTimers,
toFake: [...configDefaults.fakeTimers.toFake, 'performance']
},

reporters: process.env.GITHUB_ACTIONS
? ['basic', 'github-actions']
: ['default'],
environment: 'nuxt',
environmentOptions: {
nuxt: {
overrides: {
imports: {
dirs: ['~/composables/**']
}
}
}
},
include: ['./tests/**/*.spec.ts'],
globals: true,
globalSetup: './tests/vitest.global.setup.ts',
setupFiles: ['./tests/vitest.setup.ts'],
server: {
deps: {
inline: ['vitest-canvas-mock']
}
},
coverage: {
reporter: ['lcov', 'text-summary'],
include: [
'composables/**/*.ts',
'components/**/*.vue',
'pages/**/*.vue'
],
reportsDirectory: './coverage'
}
}
})
// vitest.config.ts
import { defineVitestConfig } from '@nuxt/test-utils/config'
import { configDefaults } from 'vitest/config'

export default defineVitestConfig({
test: {
fakeTimers: {
...configDefaults.fakeTimers,
toFake: [...configDefaults.fakeTimers.toFake, 'performance']
},

reporters: process.env.GITHUB_ACTIONS
? ['basic', 'github-actions']
: ['default'],
environment: 'nuxt',
environmentOptions: {
nuxt: {
overrides: {
imports: {
dirs: ['~/composables/**']
}
}
}
},
include: ['./tests/**/*.spec.ts'],
globals: true,
globalSetup: './tests/vitest.global.setup.ts',
setupFiles: ['./tests/vitest.setup.ts'],
server: {
deps: {
inline: ['vitest-canvas-mock']
}
},
coverage: {
reporter: ['lcov', 'text-summary'],
include: [
'composables/**/*.ts',
'components/**/*.vue',
'pages/**/*.vue'
],
reportsDirectory: './coverage'
}
}
})
I'll try to provide a repro really soon
15 replies