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