如何使Jest --watch在JSON / YAML文件的更改上运行?

问题描述

我正在使用--watch进行一些测试,这些测试取决于数据装置。我希望在编辑数据文件(而不只是代码)时触发手表运行。 我在package.json添加了以下内容,特别是为yaml添加modulefileExtensions,但还是没有运气。基于: https://jestjs.io/docs/en/configuration#modulefileextensions-arraystring

我可以对package.json进行设置以查看它是否甚至被拾取了吗?我猜下一步是尝试使用.js配置,并抛出一些错误,看看我是否在树错树皮!

yaml文件不是“导入”的一部分,否则,它们仅由我的代码加载。因此,我希望一种“触摸”文件的方式可以重新触发手表运行。

也许watch命令还需要指定要监视的数据文件

  "jest": {
    "verbose": true,"modulePaths": [
      "cdn","src"
    ],"modulefileExtensions": [
      "js","json","jsx","ts","tsx","yaml"
    ]

解决方法

According to this issue moduleFileExtensions是配置要监视的其他文件扩展名的正确位置。但是,您应该使用modulePaths而不是roots来配置要监视的目录。

modulePaths的笑话:

用于设置NODE_PATH env变量的另一种API,modulePaths是解析模块时要搜索的其他位置的绝对路径的数组。

模块在执行测试之前已解决,并且预计不会有太大变化。如果您想添加目录供Jest观看,则可以考虑使用roots config

roots的笑话:

Jest用于搜索文件的目录的路径列表。

package.json

{
  ...
  "jest": {
    "roots": [
      "<rootDir>/cdn","<rootDir>/src"
    ],"moduleFileExtensions": [
      "js","json","jsx","ts","tsx","node","yaml","yml"
    ]
  }
}

请注意,我还为模块文件扩展名添加了“ yml”,以防您使用yml / yaml。