Depuración y pruebas de Electron
Las aplicaciones de Electron involucranProceso principal y proceso de renderizadoHay dos entornos de ejecución, por lo que las estrategias de depuración y pruebas deben diseñarse para los diferentes procesos.
Un buen flujo de depuración y pruebas puede mejorar la eficiencia del desarrollo y la estabilidad de la aplicación.
Depuración del proceso principal
Depuración con Chrome DevTools
- El proceso principal de Electron se puede
--inspecto--inspect-brkiniciar y depurar con Chrome DevTools. Ejemplo de inicio:
electron --inspect=9222 .
- Escriba en la barra de direcciones de Chrome
chrome://inspect, y podrá conectarse al proceso principal para depurar con puntos de interrupción, ver la pila de llamadas y ejecutar expresiones.
Depuración con puntos de interrupción en VS Code
Configure en VS Code
launch.json:{ "type": "node", "request": "launch", "name": "Electron Main", "program": "${workspaceFolder}/node_modules/electron/cli.js", "args": ["."], "runtimeExecutable": null, "windows": { "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd" }, "sourceMaps": true, "protocol": "inspector" }- De esta manera, puede establecer puntos de interrupción directamente en los archivos del proceso principal para depurar la lógica y la comunicación IPC.
Registro de logs
- Utilice
console.logo una biblioteca de logs de terceros (comowinston) para registrar la información de ejecución del proceso principal. - Se recomienda clasificar los logs: info, warn, error, para facilitar la localización de problemas.
Depuración del proceso de renderizado
Abrir las herramientas de desarrollador
Llamar en el proceso de renderizado:
mainWindow.webContents.openDevTools()
- Puede ver directamente el DOM, la depuración de JS, las solicitudes de red y el panel de rendimiento.
Depuración remota
El proceso de renderizado también puede habilitar el puerto de depuración remota:
electron --remote-debugging-port=9223 .
- Puede conectarse a la depuración remota en Chrome DevTools, adecuado para depuración con múltiples ventanas o entre dispositivos.
React / Vue DevTools
Para los procesos de renderizado que utilizan frameworks frontend, instale las DevTools correspondientes:
npm install --save-dev electron-devtools-installer
Ejemplo:
const { default: installExtension, REACT_DEVELOPER_TOOLS } = require('electron-devtools-installer') app.whenReady().then(() => { installExtension(REACT_DEVELOPER_TOOLS) .then(name => console.log(`已安装: ${name}`)) .catch(err => console.log('安装失败:', err)) })- Permite depurar el estado de los componentes, las props y los eventos, mejorando la eficiencia del desarrollo frontend.
Pruebas automatizadas
Framework de pruebas Spectron
- Spectron es la herramienta de pruebas de extremo a extremo recomendada oficialmente por Electron, basada en WebDriver.
- Puede probar el inicio de la aplicación, el comportamiento de las ventanas, los clics en botones y las llamadas IPC.
npm install --save-dev spectron mocha chai
Ejemplo:
const Application = require('spectron').Application const assert = require('chai').assert const path = require('path') describe('应用启动测试', function () { this.timeout(10000) let app before(async () => { app = new Application({ path: require('electron'), // Electron 可执行文件 args: [path.join(__dirname, '..')] }) await app.start() }) after(async () => { if (app && app.isRunning()) await app.stop() }) it('窗口数量应为 1', async () => { const count = await app.client.getWindowCount() assert.equal(count, 1) }) })
Pruebas unitarias
- Se pueden escribir pruebas unitarias para la lógica del proceso principal y los módulos del proceso de renderizado.
- Se recomienda usar Jest o Mocha + Chai:npm install --save-dev jest
Pruebas de extremo a extremo
- Pruebe los flujos de operación del usuario, como hacer clic en botones, abrir nuevas ventanas y verificar que la interacción de datos sea correcta.
- Se puede combinar con Spectron o Playwright + Electron.
Integración CI/CD
Configure las pruebas de Electron en plataformas de integración continua (GitHub Actions, GitLab CI):
- Instalar Node.js + Electron
- Ejecutar pruebas unitarias y pruebas de extremo a extremo
- Generar informes de cobertura y subirlos
Resumen
Puntos clave de la depuración y las pruebas en Electron:
- Proceso principal: Depuración con puntos de interrupción en Chrome DevTools o VS Code + logs
- Proceso de renderizado: Herramientas de desarrollador + DevTools del framework frontend
- Pruebas automatizadas: Spectron, pruebas unitarias, pruebas de extremo a extremo + CI/CD
- Objetivo: Mejorar la eficiencia del desarrollo, descubrir problemas potenciales y garantizar la estabilidad de la aplicación