节点 API
警告
Vitest 公开了实验性的私有 API。重大更改可能不遵循 SemVer,请在使用时固定 Vitest 的版本。
startVitest
您可以使用其节点 API 开始运行 Vitest 测试。
import { } from 'vitest/node'
const = await ('test')
await ?.()startVitest 函数如果可以启动测试,则返回 Vitest 实例。如果发生以下情况之一,它将返回 undefined
- Vitest 未找到
vite包(通常与 Vitest 一起安装) - 如果启用了覆盖率并且运行模式为“test”,但未安装覆盖率包(
@vitest/coverage-v8或@vitest/coverage-istanbul) - 如果未安装环境包(
jsdom/happy-dom/@edge-runtime/vm)
如果返回 undefined 或测试在运行期间失败,Vitest 会将 process.exitCode 设置为 1。
如果未启用观察模式,Vitest 将调用 close 方法。
如果启用了观察模式并且终端支持 TTY,Vitest 将注册控制台快捷键。
您可以将过滤器列表作为第二个参数传递。Vitest 将仅运行其文件路径中至少包含一个传递字符串的测试。
此外,您可以使用第三个参数传递 CLI 参数,这将覆盖任何测试配置选项。
或者,您可以将完整的 Vite 配置作为第四个参数传递,这将优先于任何其他用户定义的选项。
createVitest
您可以使用 createVitest 函数自己创建 Vitest 实例。它返回与 startVitest 相同的 Vitest 实例,但它不会启动测试,也不会验证已安装的包。
import { } from 'vitest/node'
const = await ('test', {
: false,
})parseCLI
您可以使用此方法解析 CLI 参数。它接受一个字符串(其中参数由单个空格分隔)或一个字符串数组的 CLI 参数,格式与 Vitest CLI 使用的格式相同。它返回一个过滤器和 options,您可以稍后将其传递给 createVitest 或 startVitest 方法。
import { } from 'vitest/node'
('vitest ./files.ts --coverage --browser=chrome')Vitest
Vitest 实例需要当前测试模式。它可以是
test在运行运行时测试时benchmark在运行基准测试时
mode
test
测试模式将仅调用 test 或 it 内部的函数,并在遇到 bench 时抛出错误。此模式使用配置中的 include 和 exclude 选项来查找测试文件。
benchmark
基准测试模式调用 bench 函数,并在遇到 test 或 it 时抛出错误。此模式使用配置中的 benchmark.include 和 benchmark.exclude 选项来查找基准测试文件。
start
您可以使用 start 方法开始运行测试或基准测试。您可以传递一个字符串数组来过滤测试文件。