Skip to content

Latest commit

 

History

History
105 lines (67 loc) · 4.19 KB

watch-mode.md

File metadata and controls

105 lines (67 loc) · 4.19 KB

备注

这是 watch-mode.md 的简体中文翻译。这个链接 用来查看本翻译与 AVA 的 master 分支是否有差别(如果你没有看到watch-mode.md发生变化,那就意味着这份翻译文档是最新的)。


观察模式

翻译:Français, Italiano, Русский, 简体中文

AVA 自带了一个聪明的观察模式,它会观察那些改变了的文件并运行受到改变影响的测试。

运行测试时启用观察模式

你可以通过使用--watch-w标志来启用观察模式,如果你是全局安装的 AVA:

$ ava --watch

如果你将 AVA 配置在package.json中,像这样:

{
  "scripts": {
    "test": "ava"
  }
}

你可以这样运行:

$ npm test -- --watch

你可以设置一个特殊的脚本:

{
  "scripts": {
    "test": "ava",
    "test:watch": "ava --watch"
  }
}

然后使用:

$ npm run test:watch

要求

AVA 使用 chokidar 来作为文件观察器,它被配置为可选的依赖库,因为chokidar有时候无法安装,如果chokidar安装失败那么观察模式就不可用,然后你将看到一条这样的信息:

The optional dependency chokidar failed to install and is required for --watch. Chokidar is likely not supported on your platform.

请参考 chokidar文档 了解如何解决这个问题。

源文件和测试文件

在 AVA 中源文件测试文件是有差别的,正如你所想的一样,测试文件包含了你的测试,源文件是需要支持测试运行的其他所有文件,是你的源代码或者测试数据。

默认情况下 AVA 观察测试文件,package.json和其他的.js文件的改变,它会忽略由 ignore-by-default 包提供的特定文件夹 下的文件。

你可以使用 --source CLI 标志package.json文件的ava属性为源文件配置模式,注意如果你从 ignore-by-default 中指定了一个负模式目录,那么忽略将不再有效,所以你可能想要在你的配置里重复这些操作。

如果你的测试会写入磁盘,那么它们会跟踪观察器来返回你的测试,这种情况下你需要使用--source标志。

依赖跟踪

AVA 跟踪测试文件依赖的源文件,如果你改变的源文件只有一个测试被依赖,那么就只会返回这个测试,如果它不能识别哪个测试文件依赖了这个被修改的源文件,那么它会返回所有的测试。

依赖跟踪在 required 模式中有效,支持自定义继承和转换,使用 --require CLI 标志而不是从你的测试文件来帮助你加载它们。使用fs模块来访问的文件不会被跟踪。

手动返回所有测试

你可以在 console 中,通过在Enter后面打印r来快速返回所有测试,

调试

有时候观察模式会出现一些意想不到的事情,比如当你只运行一个测试时会返回所有测试,为了调查原因你可以启用调试模式:

$ DEBUG=ava:watcher npm test -- --watch

在 Windows 里这样用:

$ set DEBUG=ava:watcher
$ npm test -- --watch

帮助我们改善观察模式

观察模式比较新并且现在处于初期阶段,请 报告 任何你遇到问题,谢谢!