Running Tests
Analog supports Vitest for running unit tests.
Vitest Features
Vitest supports many features:
- A Jest-compatible API.
- Supports Vite's config, transforms, resolvers, and plugins.
- Smart & instant watch mode.
- TypeScript support.
- Jest-compatible snapshots.
- jsdom for DOM mocking.
- In-source testing.
- And more ...
Running Unit Tests
To run unit tests, use the test
command:
- npm
- Yarn
- pnpm
npm run test
yarn test
pnpm run test
You can also add Vitest to your existing project.
IDE Support
Tests can also be run directly from your IDE using the Vitest IDE integrations for VS Code or JetBrains IDEs.
Known limitations
-
Only globals are patched with Zone.js. This means, that if you import
it
,describe
etc fromvitest
directly, you won't be able to runfakeAsync
. Instead, use the functions (it
,describe
etc. the way you used to do in Jest/Jasmine – without any imports of these functions in the test file). -
vmThreads
is used. This can lead to potential memory leaks and is used as a default to provide an environment closer to the Jest with JSDOM. More details you can read here.To change that – adjust your
vite.config.mts
export default defineConfig(({ mode }) => {
return {
test: {
pool: 'threads', // add this property
},
};
});