节点 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
方法开始运行测试或基准测试。您可以传递一个字符串数组来过滤测试文件。