跳至主要内容

测试

我们的目标是保持 Electron 的高代码覆盖率。 我们要求所有 pull request 不仅要通过所有现有的测试,而且最好还要添加新的测试来覆盖更改的代码和新的场景。 确保我们尽可能多地捕获 Electron 的代码路径和用例,可以确保我们发布的应用程序包含更少的错误。

此存储库附带了 JavaScript 和 C++ 的 linting 规则 - 以及单元测试和集成测试。 要了解有关 Electron 编码风格的更多信息,请参阅coding-style文档。

Linting

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

这些检查中的许多都包含作为预提交钩子,因此您的错误很可能在提交时被捕获。

单元测试

如果您不使用 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 Smoke Tests

如果您对可能影响 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. 选择日语补充字体,然后点击安装

像素测量

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

要配置显示缩放

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