跳到主要内容
版本:26.x.

观看插件

Jest Watch Plugin系统提供了一种方法来挂钩Jest的特定部分,并定义在按键时执行代码的监视模式菜单提示。合并,这些功能允许您为工作流程开发互动体验。

观看插件界面

班级 mywatchplugin. {
//将挂钩添加到Jest生命周期事件
申请 jesthooks. { }
//获取交互式插件的提示信息
getusageinfo. GlobalConfig { }
//当`getUsageInfo`的密钥输入时执行
跑步 GlobalConfig updateconfigandrun. { }
}

挂在jest

要将手表插件连接到Jest,请添加其路径守望者在您的Jest配置中:

// jest.config.js.
模块 出口 = {
// ......
守望者 [ '路径/到/ yourwatchplugin' ]
} ;

自定义手表插件可以将挂钩添加到Jest事件。这些钩子可以在手表模式菜单中使用或不具有交互式键添加。

申请(jesthooks)

可以通过实施jest钩子附加申请方法。此方法收到ajesthooks.参数允许插件挂钩测试运行的生命周期的特定部分。

班级 mywatchplugin. {
申请 jesthooks. { }
}

下面是Jest中提供的钩子。

Jesthooks.shouldruntestsuite(testsuiteinfo)

返回布尔值(或promise 用于处理异步操作)以指定应运行测试是否应运行。

por presseo:

班级 mywatchplugin. {
申请 jesthooks. {
jesthooks. 应该是 testsuiteinfo. => {
返回 testsuiteinfo. testpath. 包括 '我的关键词' ;
} ;
//或承诺
jesthooks. 应该是 testsuiteinfo. => {
返回 承诺 解决 testsuiteinfo. testpath. 包括 '我的关键词' ;
} ;
}
}

Jesthooks.ontestrunco​​mplete(结果)

在每个测试运行结束时被调用。它将测试结果作为参数。

por presseo:

班级 mywatchplugin. {
申请 jesthooks. {
jesthooks. ontestrunco​​mplete. 结果 => {
_hassnapshotfailure. = 结果 快照 失败 ;
} ;
}
}

Jesthooks.onfileChange({Projects})

只要文件系统发生变化,就会被调用

  • 项目:数组:包括Jest正在观看的所有测试路径。

por presseo:

班级 mywatchplugin. {
申请 jesthooks. {
jesthooks. onfileChange. { 项目 } => {
_projects. = 项目 ;
} ;
}
}

观看菜单集成

自定义手表插件也可以通过指定键/提示对,为无法添加或覆盖手表菜单的功能getusageinfo.方法和A.跑步执行密钥的方法。

GetUsageInfo(GlobalConfig)

要为手表菜单添加密钥,请实现getusageinfo.方法,返回键和提示:

班级 mywatchplugin. {
getusageinfo. GlobalConfig {
返回 {
钥匙 '
迅速的 '做一点事'
} ;
}
}

这将在“监视模式”菜单中添加一行>按S做点什么。

观看使用
>按P将P通过Filename Regex模式进行过滤。
>按T To过滤通过测试名称正则表达式模式。
>按Q键退出监​​视模式。
>按S做点什么。// < - 这是我们的插件
>按ENTER键触发测试运行。

笔记:如果插件的键已作为默认密钥存在,则您的插件将覆盖该密钥。

运行(GlobalConfig,UpdateConfigandRun)

从返回的密钥处理键新闻事件getusageinfo.,你可以实现跑步方法。此方法返回一个promise 即可在插件返回jest时可以解决。这布尔基指定Jest是否应该在获取控件后重新运行测试。

  • GlobalConfig:Jest当前全局配置的表示
  • updateconfigandrun.:允许您在交互式插件运行时触发测试运行。
班级 mywatchplugin. {
跑步 GlobalConfig updateconfigandrun. {
// 做一点事。
}
}

笔记:如果你打电话updateconfigandrun., 你的跑步方法不应该解决真实的值,因为它会触发双运行。

授权配置密钥

出于稳定性和安全原因,只能更新全局配置键的一部分updateconfigandrun.。当前的白色列表如下:

定制

可以通过您的Jest配置自定义插件。

// jest.config.js.
模块 出口 = {
// ......
守望者 [
[
'路径/到/ yourwatchplugin'
{
钥匙 'K' // < - 您的自定义密钥
迅速的 '显示自定义提示'
}
]
]
} ;

推荐配置名称:

  • 钥匙:修改插件键。
  • 迅速的:允许用户自定义插件提示符中的文本。

如果用户提供了自定义配置,则它将作为参数传递给插件构造函数。

班级 mywatchplugin. {
构造函数 { 配置 } { }
}

选择一个很好的关键

Jest允许第三方插件覆盖其一些内置功能键,但并非所有内容。具体来说,以下键是不被覆盖

  • C(清除过滤器模式)
  • 一世(以交互方式更新非匹配的快照)
  • 问:(退出)
  • (更新所有非匹配快照)
  • W.(显示观看模式使用/可用操作)

内置功能的以下键可以覆盖

  • P.(测试文件名模式)
  • T.(测试名称模式)

可以索赔内置功能不使用的任何密钥,如您所预期的那样。尽量避免使用难以在各种键盘上获得的键(例如É.)默认情况下或不可见(例如,许多Mac键盘没有用于字符的可视提示|,`[`等)

发生冲突时

如果您的插件尝试覆盖保留钥匙,则Jest将使用描述性消息进行错误,如:

观看插件yourfaultyplugin试图注册键问:,内部保留用于退出监视模式。请更改此插件的配置密钥。

还禁止第三方插件覆盖已在配置的插件列表中提前的另一个第三方插件保留的密钥(守望者阵列设置)。发生这种情况时,您还会收到一条错误消息,以帮助您解决:亚搏取款

观看插件yourfaultyplugin和hysfaultyplugin尝试注册密钥X。请更改其中一个冲突插件的关键配置以避免重叠。