最近我发现为使用Electron的应用程序规划自动化测试有一些困难。我试过使用Spectron,它看起来像官方框架来测试Electron应用程序,但是,我发现这些文档在他们的网站上很难理解。我必须使用Spectron来测试电子吗?
我知道有一些使用Electron的着名应用程序,例如Slack,Wordpress和Github Desktop。我想知道他们是否真的使用Spectron或其他的自动化来测试他们的应用程序。
我非常想弄清楚Spectron是否是测试Electron的唯一方法。
最近我发现为使用Electron的应用程序规划自动化测试有一些困难。我试过使用Spectron,它看起来像官方框架来测试Electron应用程序,但是,我发现这些文档在他们的网站上很难理解。我必须使用Spectron来测试电子吗?
我知道有一些使用Electron的着名应用程序,例如Slack,Wordpress和Github Desktop。我想知道他们是否真的使用Spectron或其他的自动化来测试他们的应用程序。
我非常想弄清楚Spectron是否是测试Electron的唯一方法。
就端对端测试而言,我会说Spectron是最佳选择。启动和运行起来可能相当困难,但Spectron建立在WebdriverIO之上,您会发现很多文档。
要起床和运行,我会提出以下建议。
npm install spectron mocha --save-dev
我先试case.e2e.js
const electron = require('electron');
describe('my first test case', function() {
beforeEach(() => {
this.app = new Application({
path: electron,
args: ['.'],
});
return this.app.start();
});
afterEach(() => {
if (this.app && this.app.isRunning()) {
return this.app.stop();
}
return undefined;
});
it('creates a new tab when account is added', function() {
const accountName = 'awesomeMail';
return this.app.client.waitUntilWindowLoaded()
.waitForVisible('h1')
.getText('h1')
.then(text => expect(text).toEqual('Welcome'));
});
});
然后运行
mocha my-first-test-case.e2e.js
或者,如果你没有安装全球摩卡
node_modules/.bin/mocha my-first-test-case.e2e.js
我假设像waitUntilWindowLoaded(),waitForVisible()和getText()函数的文档在webdriverIO文档中? –
'waitUntilWindowLoaded'是Spectron API的一部分,而'waitForVisible'和'getText'是WebdriverIO – kontrollanten