Electron 测试、监控与发布

为 Electron 应用建立基础测试、日志、崩溃排查和发布前检查流程。

🎯 引言

桌面应用发布后,问题可能出现在不同操作系统、不同窗口状态和不同文件权限下。本篇不引入复杂测试平台,先建立一套小项目也能执行的检查方法。


🧪 先测试最重要的路径

优先验证用户真正依赖的流程:

  • 应用能启动并显示主窗口。
  • 用户取消文件选择时,页面不会报错。
  • IPC 参数错误时,主进程会返回错误。
  • 文件读取失败时,页面能显示反馈。
  • 导出 PDF 后,文件确实存在且可以打开。

测试重点是成功路径和失败路径,而不是把每一行代码都测试一遍。


🔍 使用日志定位问题

日志至少要包含事件名称和必要的上下文:

electron/main.js
console.info('[file:open] start');

try {
    const file = await openFile();
    console.info('[file:open] success', { name: file.name });
} catch (error) {
    console.error('[file:open] failed', error);
}

不要把密码、令牌和完整文件内容写入日志。正式项目可以把日志保存到 app.getPath('logs'),并设置大小或保留时间限制。

Electron 还提供了基础的崩溃事件入口,可以先把崩溃记录到日志:

electron/main.js
const { crashReporter } = require('electron/main');

crashReporter.start({
    uploadToServer: false,
});

uploadToServer: false 只用于本地学习和检查。正式项目需要根据隐私要求和服务方案决定是否上传崩溃报告,并提前说明收集范围。


🧰 发布前检查

[ ] 开发环境和打包后的资源都能加载
[ ] Windows、macOS 或 Linux 目标系统完成实际启动检查
[ ] 文件选择、取消和读取失败路径都验证
[ ] 应用图标、名称和版本号正确
[ ] 签名或公证状态符合发布要求
[ ] 更新失败时不会破坏旧版本
[ ] 日志中没有敏感信息

涉及 GitHub、CI 平台或系统签名页面时,页面入口会变化,实际操作以平台最新界面和官方文档为准。

不同操作系统的安装权限、路径格式和签名要求不同。不要只在开发机启动成功后,就认为应用已经可以交付。

🧾 小节总结

  • 测试优先覆盖关键成功和失败路径。
  • 日志应记录事件和上下文,但不能泄露敏感信息。
  • 打包后要重新检查资源路径和系统权限。
  • 签名、安装和自动更新都需要在目标平台验证。
  • 发布前清单可以减少遗漏。

❓ 知识问答

Q1:为什么开发环境正常,安装包可能出问题?

A:开发环境有 Vite 服务器和完整项目目录,安装包中的资源路径和权限条件不同。

Q2:日志越详细越好吗?

A:不是。日志要能定位问题,同时避开密码、令牌和大段用户数据。

🧪 小练习

为“读取文件失败”补充一条不包含文件内容的错误日志:

catch (error) {
    // 请在这里编写代码
}

🎉 现在你已经有了一套适合小型 Electron 应用的发布检查思路。