测试
我们的目标是保持 Electron 的代码覆盖率高。我们要求所有 pull request 不仅通过所有现有测试,而且最好还能添加新的测试来覆盖更改的代码和新的场景。确保我们捕获 Electron 的尽可能多的代码路径和用例,可以确保我们所有人交付的应用程序错误更少。
此仓库附带了 JavaScript 和 C++ 的 linting 规则,以及单元测试和集成测试。要了解有关 Electron 编码风格的更多信息,请参阅 编码风格 文档。
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 测试
如果您对 Node.js 嵌入到 Electron 的方式进行了更改,我们有一个测试运行器,它将 Node.js 中的所有测试都运行起来,使用 Electron 的 Node.js 自定义分叉。
要运行所有 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 头文件。
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 键并搜索管理可选功能。
- 点击添加功能。
- 选择日语补充字体并点击安装。
像素测量
由于浮点精度错误,依赖于精确像素测量的某些测试可能无法在具有 Hi-DPI 屏幕设置的设备上正确工作。要正确运行这些测试,请确保设备设置为 100% 缩放。
要配置显示缩放
- 按下 Windows 键并搜索显示设置。
- 在缩放和布局下,确保设备设置为 100%。