DevTools 节点测试¶
除了 mochitests 和 xpcshell 测试之外,DevTools 中的一些面板还使用节点测试库来运行单元测试。例如,几个面板使用 Jest 来运行 React 组件单元测试。
在 Try 上查找节点测试¶
DevTools 节点测试任务,node(devtools)
,在 Linux 64 opt
平台上运行。它是一个 1 级作业,这意味着任何失败都会导致回退。
在 Try 上运行测试¶
要在 try 上运行 DevTools 节点测试,可以使用 ./mach try fuzzy
并查找名为 source-test-node-devtools-tests
的作业。
在使用“devtools”预设时,它们也会运行:./mach try --preset devtools
。
节点测试 try 作业定义¶
这些 try 作业的定义可以在 taskcluster/kinds/source-test/node.yml 中找到。
该定义还包含将触发节点测试作业的文件列表。目前,当修改 devtools/client
或 devtools/shared
下的任何文件时,devtools 测试都会运行。
你需要安装 yarn 才能运行 DevTools 测试。请参阅 https://yarn.npmjs.net.cn/getting-started。
要运行 DevTools 测试,最简单的方法是依赖于与在 try 上运行测试时使用的相同脚本。
> node devtools/client/bin/devtools-node-test-runner.js --suite={suitename}
在撰写本文时,此脚本支持的套件为
aboutdebugging
accessibility
application
compatibility
debugger
framework
netmonitor
performance
shared_components
webconsole
(您可以在 devtools/client/bin/devtools-node-test-runner.js 中查看完整列表和相关配置)
或者,您也可以找到与给定套件对应的 package.json
,并运行 yarn && yarn test
。
更新快照¶
一些节点测试是快照测试,这意味着它们将给定组件的输出与之前的文本快照进行比较。如果您正在合法地修改组件,它们可能会中断,这意味着需要更新快照。
快照失败将显示如下
› 1 snapshot failed from 1 test suite
它还应该提到您可以运行以更新快照的命令
Inspect your code changes or run `yarn run test-ci -u` to update them.
例如,如果您需要更新特定面板中的快照,首先找到与该面板的节点测试文件夹对应的 package.json。理论上它应该位于 devtools/client/{panelname}/test/node/
下,但根据每个面板的不同,它可能略有不同。然后在此文件夹中运行 yarn run test-ci -u
并将快照更改添加到您的提交中。
TypeScript¶
“performance”套件执行 TypeScript 检查。性能面板中 TypeScript 的用法在 devtools/client/performance-new/typescript.md 中有说明 (在 GitHub 上查看渲染版本)。
devtools-bundle¶
devtools-bundle 作业是 2 级作业,它检查 DevTools 包是否已过时。DevTools 包是从树中其他依赖项构建的生成的 JavaScript 文件,以便在特定环境中运行(通常是 worker)。
DevTools 使用的所有包都是由 devtools/client/debugger/bin/bundle.js 生成的。devtools-bundle 作业只是运行此脚本,如果任何版本化的文件更新则失败。
为了修复故障,您应该运行脚本
> cd devtools/client/debugger/
> yarn && node bin/bundle.js
并提交更改,或者在更新包依赖项的提交中,或者在单独的提交中,以保持事物的分离。