【问题标题】:Do I have to use Spectron to test Electron?我必须使用 Spectron 来测试 Electron 吗?
【发布时间】:2018-01-26 09:19:55
【问题描述】:

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

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

我只是想弄清楚 Spectron 是否是测试 Electron 的唯一方法。

【问题讨论】:

  • “我只是想弄清楚 Spectron 是否是测试 Electron 的唯一方法。” ...不,Electron 还有其他测试框架。比如我知道商业测试框架QF-Test可以测试电子应用,见qfs.de/en/qf-test-manual/lc/…>。

标签: javascript testing automation electron spectron


【解决方案1】:

在端到端测试方面,我会说 Spectron 是要走的路。启动和运行可能非常困难,但 Spectron 是基于 WebdriverIO 构建的,您会在那里找到大量文档。

为了启动和运行,我提出以下建议。

npm install spectron mocha --save-dev

my-first-test-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

【讨论】:

  • 我假设 waitUntilWindowLoaded()、waitForVisible() 和 getText() 等函数的文档在 webdriverIO 文档中?
  • waitUntilWindowLoaded 是 Spectron API 的一部分,而 waitForVisiblegetText 是 WebdriverIO
  • 如果需要 webpack,如何在 deb 模式下运行电子应用程序?
【解决方案2】:

我尝试使用 java 测试电子应用程序一段时间,但由于我的应用程序结构,我刚刚再次回到 Spectron。 如果您想使用其他选项(java、phyton 和 selenium)测试您的电子应用程序,您可以为其设置浏览器选项和功能,如下所示。

Java 代码示例:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多