Awesome
<p align="center"> <a href="https://vitest.dev"> <img src="https://user-images.githubusercontent.com/11247099/145112184-a9ff6727-661c-439d-9ada-963124a281f7.png" height="150"> </a> </p> <h1 align="center"> Vitest </h1> <p align="center"> Next generation testing framework powered by Vite. <p> <p align="center"> <a href="https://www.npmjs.com/package/vitest"><img src="https://img.shields.io/npm/v/vitest?color=729B1B&label="></a> <p> <p align="center"> <a href="https://chat.vitest.dev"><b>Get involved!</b></a> </p> <p align="center"> <a href="https://vitest.dev">Documentation</a> | <a href="https://vitest.dev/guide/">Getting Started</a> | <a href="https://vitest.dev/guide/#examples">Examples</a> | <a href="https://vitest.dev/guide/why">Why Vitest?</a> </p> <p align="center"> <a href="https://cn.vitest.dev">中文文档</a> </p> <h4 align="center"> </h4> <br> <br>Features
- Vite's config, transformers, resolvers, and plugins. Use the same setup from your app!
- Jest Snapshot
- Chai built-in for assertions, with Jest expect compatible APIs
- Smart & instant watch mode, like HMR for tests!
- Native code coverage via
v8
oristanbul
. - Tinyspy built-in for mocking, stubbing, and spies.
- JSDOM and happy-dom for DOM and browser API mocking
- Browser Mode for running component tests in the browser
- Components testing (Vue, React, Svelte, Lit, Marko)
- Workers multi-threading via Tinypool (a lightweight fork of Piscina)
- Benchmarking support with Tinybench
- Workspace support
- expect-type for type-level testing
- ESM first, top level await
- Out-of-box TypeScript / JSX support
- Filtering, timeouts, concurrent for suite and tests
- Sharding support
- Run your tests in the browser natively (experimental)
Vitest requires Vite >=v5.0.0 and Node >=v18.0.0
import { assert, describe, expect, it } from 'vitest'
describe('suite name', () => {
it('foo', () => {
expect(1 + 1).toEqual(2)
expect(true).to.be.true
})
it('bar', () => {
assert.equal(Math.sqrt(4), 2)
})
it('snapshot', () => {
expect({ foo: 'bar' }).toMatchSnapshot()
})
})
$ npx vitest
Sponsors
Vladimir Sponsors
<p align="center"> <a href="https://cdn.jsdelivr.net/gh/sheremet-va/static/sponsors.svg"> <img src='https://cdn.jsdelivr.net/gh/sheremet-va/static/sponsors.svg'/> </a> </p>Anthony Fu Sponsors
<p align="center"> <a href="https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg"> <img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg'/> </a> </p>Patak Sponsors
<p align="center"> <a href="https://cdn.jsdelivr.net/gh/patak-dev/static/sponsors.svg"> <img src='https://cdn.jsdelivr.net/gh/patak-dev/static/sponsors.svg'/> </a> </p>Credits
Thanks to:
- The Jest team and community for creating a delightful testing API
- @lukeed for the work on uvu where we are inspired a lot from.
- @pi0 for the idea and implementation of using Vite to transform and bundle the server code.
- The Vite team for brainstorming the initial idea.
- @patak-dev for the awesome package name!
Contribution
See Contributing Guide.
License
MIT License © 2021-Present Anthony Fu, Matias Capeletto