测试
我们的目标是保持 Electron 的高代码覆盖率。我们要求所有拉取请求不仅要通过所有现有测试,最好还要添加新测试来覆盖已更改的代码和新场景。确保尽可能捕获 Electron 的所有代码路径和用例,可以确保我们都能发布更少 bug 的应用程序。
此存储库同时提供 JavaScript 和 C++ 的 linting 规则——以及单元测试和集成测试。要详细了解 Electron 的编码风格,请参阅 coding-style 文档。
Linting
为了确保您的更改符合 Electron 的编码风格,请运行 npm run lint,它将根据您的更改涉及的代码区域运行各种 linting 检查。
其中许多检查都包含在 precommit 钩子中,因此很可能在提交时就会捕获到您的错误。
单元测试
如果您没有使用 build-tools,请确保您为本地 Electron 构建配置的名称是 Testing、Release、Default 之一,或者您已设置 process.env.ELECTRON_OUT_DIR。如果未设置这些,Electron 将无法执行某些预测试步骤。
要运行所有单元测试,请运行 npm run test。单元测试本身就是一个 Electron 应用(惊喜!),位于 spec 文件夹中。请注意,它有自己的 package.json,因此其依赖项未在顶层 package.json 中定义。
要仅运行匹配特定模式的测试,请运行 npm run test -- -g=PATTERN,将 PATTERN 替换为匹配您要运行的测试的正则表达式。例如:如果您只想运行 IPC 测试,则运行 npm run test -- -g ipc。
Node.js Smoke Tests
如果您进行了可能影响 Node.js 在 Electron 中嵌入方式的更改,我们有一个测试运行程序,它将运行 Node.js 的所有测试,使用 Electron 对 Node.js 的自定义 fork。
运行所有 Node.js 测试
$ node script/node-spec-runner.js
运行单个 Node.js 测试
$ node script/node-spec-runner.js parallel/test-crypto-keygen
其中传递给运行程序的参数是 Node.js 源码树中测试的路径。
在 Windows 10 设备上进行测试
运行单元测试的额外步骤:
-
必须安装 Visual Studio 2019。
-
必须为您的配置编译 Node.js 头文件。
ninja -C out\Testing electron:node_headers -
必须将 electron.lib 复制为 node.lib。
cd out\Testing
mkdir gen\node_headers\Release
copy electron.lib gen\node_headers\Release\node.lib
字体缺失
一些 Windows 10 设备 未预装 Meiryo 字体,这可能导致字体回退测试失败。安装 Meiryo
- 按 Windows 键并搜索 管理可选功能。
- 单击 添加功能。
- 选择 日文补充字体 并单击 安装。
像素测量
一些依赖精确像素测量的测试,由于浮点精度错误,在高 DPI 屏幕设置的设备上可能无法正常工作。要正确运行这些测试,请确保设备的缩放比例设置为 100%。
配置显示缩放
- 按 Windows 键并搜索 显示设置。
- 在 缩放和布局 下,确保设备设置为 100%。