如何在Electron和Spectron之间发送ipcmessage
How to send ipcMessages between Electron and Spectron?
我正试图为使用Spectron框架在Electron中实现的应用程序编写一些测试。当我的应用程序已经正常启动时,我想发送一个事件,表示它已经准备好了。比如
在app中:我尝试了这两个
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
测试用例之前没有被解雇吗?
尝试一下,看看事件是否正在触发:
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;
});
});
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- d3中堆栈函数和嵌套函数之间的差异
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 操作放置在画布上的元素之间的连接
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- jquery在表单之间切换
- Nodejs API控制器,用于在API之间切换
- 如何在aspx页面之间传递参数
- 在索引.html和应用.js [node.js] 之间共享变量
- 什么是&&在没有if的行中的变量之间
- DOM元素和angular元素之间的主要区别是什么
- 如何在Electron和Spectron之间发送ipcmessage