Mocha 是一个流行的 JavaScript 测试框架,它可以用于测试前端、后端以及跨页面的代码。Mocha 是一个灵活、简单而又功能强大的测试工具,提供了大量的 API 和 Plugin,方便开发人员进行单元测试、集成测试、端到端测试以及 UI 测试等。
在 Mocha 3.0 版本之后,Mocha 引入了 watchMode 功能,可以在开发阶段实时监测文件变化并重新执行测试。在 watchMode 模式下,Mocha 默认使用 nodemon 来监测文件变化,但是我们可以通过使用 watchOptions 选项来自定义监测文件的配置。
watchOptions 选项的语法
Mocha 的 watchOptions 选项是一个 object,其包含以下可用的属性:
ignoreInitial
: 忽略初始运行时的监测,默认值是false
。interval
: 监测文件变化的时间间隔,单位是毫秒,默认值是100
。binaryInterval
: 监测二进制文件变化的时间间隔,单位是毫秒,默认值是300
。awaitWritefinish
: 保证文件上传是完整的,默认值是false
。usePolling
: 是否使用轮询方式监测文件变化,默认值是false
。useFsWatch
: 是否使用 fs.watch 方法来监测文件变化,默认值是true
。useChokidar
: 是否使用 chokidar 模块来监测文件变化,默认值是true
。
默认情况下,Mocha 会使用 chokidar 模块来监测文件变化,如果你不需要使用 chokidar 模块,可以通过将 useChokidar 属性设置为 false 来关闭 chokidar 模块的使用。
watchOptions 选项的示例代码
接下来,我们来通过示例代码演示 watchOptions 选项的使用:
-- -------------------- ---- ------- -- ---------- -- ----------- ------- ------------------ ------ -------------- ------------ ------------- ---- ------------- ------ ------------- ------ --------- ----- -- ------------ -- ---------- - ------------- ------ ------- ------------- ---------------- ------------- --------- ------------- --- ------------ -- -- ------------- -- - ------------- - ------------------------ ----------------------- ------------------- --------------------- ---------------- -- -------------- - ------------------ ---------- --------- - -
以上是三种不同方式配置 watchOptions 选项的示例代码,下面对每种方式的代码进行解释:
使用 mocha.opts 文件配置 watchOptions 选项
--recursive
: 递归地查找测试用例文件。--watch
: 打开 watchMode 模式。--watch-extensions js,jsx
: 监测指定的文件扩展名,这里监测了 js 和 jsx 文件。--watch-ignore node_modules
: 忽略监测 node_modules 文件夹。--watch-delay 3000
: 每个文件变化之间的延迟时间,防止多次执行测试。--watch-files src/**
: 指定需要监测的文件。--watch-files lib/**
: 指定需要监测的文件。
在 package.json 文件的 scripts 字段中配置 watchOptions 选项
--watch-files config/**/*.json
: 指定需要监测的文件。--watch-files server.js
: 指定需要监测的文件。--watch-files src
: 指定需要监测的文件夹。--recursive
: 递归地查找测试用例文件。
使用 .mocharc.json 文件配置 watchOptions 选项
"watchFiles": [...]
: 指定需要监测的文件。"watchIgnore": [...]
: 指定需要忽略监测的文件。
以上三种方式都能够配置 watchOptions 选项,但是推荐使用 .mocharc.json 文件来配置 watchOptions 选项,因为这样可以更好地保持配置的可读性和易修改性。
watchOptions 选项的其他细节
下面是 watchOptions 选项的其他一些细节:
usePolling
和useFsWatch
是互相排斥的,默认情况下 Mocha 只会使用一个,一般情况下 Mocha 会尝试使用 fs.watch 方法来监测文件变化,如果 fs.watch 方法不可用(如在某些情况下),则会启用使用轮询的方式来监测文件变化。awaitWriteFinish
属性用于控制文件上传的监测,如果文件上传了部分数据,该属性为 true 时,Mocha 会等待文件上传完成之后再执行测试,保证测试准确性。binaryInterval
属性用于控制对二进制文件的监测时间间隔(文件上传的监测除外),默认情况下 Mocha 会将二进制文件的监测时间间隔设置为 300ms。
总结
watchOptions 选项是 Mocha 提供的一个用于自定义文件监测配置的选项,我们可以根据我们的具体情况来使用 watchOptions 选项,并配合其他 Mocha 测试框架提供的功能,达到更好的测试效果。同时,我们也需要注意不同选项间的互相排斥和优先级,这样才能保证测试的准确性和有效性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ae804848841e9894a9f229