跳至主要内容

测试

我们的目标是保持 Electron 的代码覆盖率较高。我们要求所有拉取请求不仅通过所有现有测试,而且理想情况下还添加新的测试以涵盖更改的代码和新的场景。确保我们捕获尽可能多的 Electron 代码路径和用例,可以确保我们都能发布错误更少的应用程序。

此存储库同时包含 JavaScript 和 C++ 的代码风格检查规则,以及单元测试和集成测试。要详细了解 Electron 的编码风格,请参阅编码风格文档。

代码风格检查

为了确保您的更改符合 Electron 编码风格,请运行 npm run lint,这将根据更改涉及的代码区域运行各种代码风格检查。

其中许多检查都包含在预提交钩子中,因此您很可能在提交时就会发现错误。

单元测试

如果您没有使用build-tools,请确保您为本地 Electron 构建配置的名称是 TestingReleaseDefault 之一,或者您已设置 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 烟雾测试

如果您进行了可能影响 Node.js 嵌入到 Electron 方式的更改,我们有一个测试运行程序,它使用 Electron 的自定义 Node.js 分支运行 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 设备上测试

运行单元测试的额外步骤:

  1. 必须安装 Visual Studio 2019。

  2. 必须为您的配置编译 Node 头文件。

    ninja -C out\Testing electron:node_headers
  3. 必须将 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

  1. 按 Windows 键并搜索“管理可选功能”。
  2. 单击“添加功能”。
  3. 选择“日语补充字体”并单击“安装”。

像素测量

由于浮点数精度错误,某些依赖于精确像素测量的测试在具有高 DPI 屏幕设置的设备上可能无法正常工作。要正确运行这些测试,请确保设备设置为 100% 缩放。

配置显示缩放

  1. 按 Windows 键并搜索“显示设置”。
  2. 在“缩放和布局”下,确保设备设置为 100%。