【问题标题】:How to send ipcMessages between Electron and Spectron?如何在 Electron 和 Spectron 之间发送 ipcMessages?
【发布时间】:2016-12-20 19:12:36
【问题描述】:

我正在尝试为使用 Spectron 框架在 Electron 中实现的应用程序编写一些测试。 当我的应用程序正常启动时,我想发送一个它准备好的事件。我做类似的事情

在应用程序中:我尝试这两个

electron.ipcRenderer.send('app-started');
process.send('app-started', "SUCCESS");

在测试中:我尝试了这两个

beforeEach(function () {
    let pathArgs = path.join(__dirname, '../..');

    app = new Application({
        path: APP_PATH_ELECTRON,
        args: [pathArgs],
        env: {
            TESTING: true,
            NODE_ENV: 'development',
            APPDATA: "C:/tmp"
        }
    });

    return app.start()
        .then(function() {
            assert.equal(app.isRunning(), true);
            client = app.client;
            mainWindow = client.browserWindow;
            ipcRenderer = client.electron.ipcRenderer;
        });
});

it('checks that app-started has been fired', function(done) {

   app.mainProcess.on('app-started', () => {console.log("DONE"); done();});

   app.rendererProcess.on('app-started', () => {console.log("DONE"); done();});

});

函数 done() 永远不会被调用:( 我感谢任何可能出错的想法。

谢谢!

【问题讨论】:

    标签: javascript electron


    【解决方案1】:

    在你it测试用例之前不是被解雇了吗?

    试试看事件是否触发:

    beforeEach(function () {
        let pathArgs = path.join(__dirname, '../..');
    
        app = new Application({
            path: APP_PATH_ELECTRON,
            args: [pathArgs],
            env: {
                TESTING: true,
                NODE_ENV: 'development',
                APPDATA: "C:/tmp"
            }
        });
    
        app.mainProcess.on('app-started', () => {console.log("DONE"); done();});
        app.rendererProcess.on('app-started', () => {console.log("DONE"); done();});
    
        return app.start()
            .then(function() {
                assert.equal(app.isRunning(), true);
                client = app.client;
                mainWindow = client.browserWindow;
                ipcRenderer = client.electron.ipcRenderer;
            });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 2019-01-18
      • 1970-01-01
      • 2021-07-24
      • 2019-05-30
      • 2021-05-01
      • 1970-01-01
      相关资源
      最近更新 更多