Javascript 不带exe文件的Spectron和electron

Javascript 不带exe文件的Spectron和electron,javascript,electron,spectron,Javascript,Electron,Spectron,我正在尝试使用Electron构建一个应用程序 我需要基于electron env和使用electron包进行一些单元测试 这样,我使用spectron来模拟我的应用程序 在文档中,我必须将可执行文件所在的路径放入“path”属性中。我现在没有可执行文件,我处于开发模式 以下是我根据另一个问题所做的尝试: beforeEach(() => { app = new Application({ path: 'node_modules/.bin/electron'

我正在尝试使用Electron构建一个应用程序

我需要基于electron env和使用electron包进行一些单元测试

这样,我使用spectron来模拟我的应用程序

在文档中,我必须将可执行文件所在的路径放入“path”属性中。我现在没有可执行文件,我处于开发模式

以下是我根据另一个问题所做的尝试:

beforeEach(() => {
    app = new Application({
        path: 'node_modules/.bin/electron'
    });
    app.start().then(res => console.log(res), err => console.log(err));

});
提示中未显示任何内容,并且以下测试失败,说明我无法在未定义的对象上获取getWindowCount(显然,应用程序未实例化):

有人知道我应该在这个路径中放置什么来让我的测试环境工作吗

附言:我用的是摩卡柴和西农


感谢您的帮助

起初我是为了测试而创建一个可执行文件的,但实际上这并不是必需的

你可以看到斯派克伦有一个和一个

该示例传递了一个名为的选项,这正是您缺少的。这就是我正在做的:

  var appPath = path.resolve(__dirname, '../'); //require the whole thing
  var electronPath = path.resolve(__dirname, '../node_modules/.bin/electron');

  beforeEach(function() {
    myApp = new Application({
      path: electronPath,
      args: [appPath], // pass args along with path
    });

   return myApp.start().then(function() {
     assert.equal(myApp.isRunning(), true);
     chaiAsPromised.transferPromiseness = myApp.transferPromiseness;
     return myApp;
   });
 });
我的测试位于./tests/app-test.js。上述方法适用于我。

如果您使用以下中提到的electron预构建,还可以为变量路径提供“electron”:

路径-必需。电子应用程序可执行文件的字符串路径 发射注意:如果您想直接使用应用程序的 主脚本,然后您应该将路径指定为electron via electron预构建并指定应用程序的主脚本路径作为第一个脚本路径 args数组中的参数

我想是这样的:

import electron from 'electron'
import { Application } from 'spectron'

describe('application launch', function () {
  this.timeout(10000)

  beforeEach(function () {
    this.app = new Application({
      path: electron,
      args: ['app']
    })
    return this.app.start()
  })
...
}

返回应用程序启动中的code>。您是否解决了问题?我与Ember electron和spectronHi有类似的事情,我正在尝试相同的事情,但不知怎么的,它不起作用。请您检查一下,electron slack的某个人帮助我解决了这个问题。不管怎样,谢谢您的关注
import electron from 'electron'
import { Application } from 'spectron'

describe('application launch', function () {
  this.timeout(10000)

  beforeEach(function () {
    this.app = new Application({
      path: electron,
      args: ['app']
    })
    return this.app.start()
  })
...
}