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 应用的发布检查思路。
