gpt4 book ai didi

javascript - 如何在 Electron 和 Spectron 之间发送 ipcMessage?

转载 作者:行者123 更新时间:2023-11-28 05:24:44 25 4
gpt4 key购买 nike

我正在尝试使用 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()永远不会被调用:(我很欣赏任何可能出错的想法。

谢谢!

最佳答案

在你it测试用例之前,even不是被触发了吗?

尝试看看事件是否正在触发:

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;
});
});

关于javascript - 如何在 Electron 和 Spectron 之间发送 ipcMessage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40264513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com