[英]Electron,Spectron: how to write test cases in seperate javascript file
[英]How to send ipcMessages between Electron and Spectron?
我正在嘗試使用Spectron框架為Electron實現的app編寫一些測試。 當我的應用程序正常啟動時,我想發送一個已准備就緒的事件。 我做的事情
在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
的TestCase?
嘗試一下,看看事件是否正在觸發:
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;
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.