我是否必须使用Spectron来测试Electron?

时间:2017-08-17 19:52:39

标签: javascript testing automation electron spectron

最近,我发现使用Electron为我们的应用程序规划自动化测试存在一些困难。我试过使用Spectron,它看起来像是测试Electron应用程序的官方框架,然而,我发现他们的网站上很难理解文档。

我知道有一些着名的应用程序使用Electron,例如Slack,Wordpress和Github Desktop。我想知道他们是否真的使用Spectron或其他东西作为自动化测试他们的应用程序。

我只是想知道Spectron是否是测试Electron的唯一方法。

2 个答案:

答案 0 :(得分:7)

就端到端测试而言,我会说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();
    }
  });

  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

或者如果你没有全局安装mocha

node_modules/.bin/mocha my-first-test-case.e2e.js

答案 1 :(得分:0)

我试图用Java测试电子应用程序一段时间,但由于我的应用程序结构,我又回到了Spectron。 如果要使用其他选项(java,phyton和硒)测试电子应用程序,则可以为其设置浏览器选项和功能,如下所示。

Java代码示例:

 ChromeOptions options = new ChromeOptions();
    options.setBinary(binaryPath);
    options.addArguments("--app=" + argPath);
    options.setCapability("chromeOptions", options);
    driver = new ChromeDriver(options);