- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们如何断言嵌入在 HTML 中的 javascript 变量在使用 electron 构建的应用程序中具有一些预期值?目前测试框架有spectron、mocha、chai、chai.should()、chai.use(chaiAsPromised)。
我想断言全局变量 foo
具有值 'foo'
.当我尝试 foo.should.equal('foo')
我得到 ReferenceError: foo is not defined at Context.<anonymous> (test\spec.js:63:28)
下面是重新设计的 spec.js。
const Application = require('spectron').Application
const assert = require('assert')
const electronPath = require('electron') // Require Electron from the binaries included in node_modules.
const path = require('path')
const chai = require('chai');
const chaiAsPromised = require('chai-as-promised');
const should = require('chai').should();
describe('Isolated testbeds house independent suites of tests.', function() {
this.timeout(30000);
before(function() {
this.app = new Application({
path: electronPath,
// directory structure:
// |__ myProject
// |__ ...
// |__ main.js
// |__ package.json
// |__ index.html
// |__ ...
// |__ test
// |__ spec.js <- You are here! ~ Well you should be.
args: [path.join(__dirname, '..')]
})
return this.app.start()
});
after(function() {
if (this.app && this.app.isRunning()) {
return this.app.stop()
}
});
/* BELOW IS THE TEST IN QUESTION */
it('should have a given value', function() {
return Promise.resolve(foo).should.eventually.equal('foo'); // HERE IS THE LINE IN QUESTION
});
})
最佳答案
Spectron 正在“远程控制”您的 Electron 应用程序,并且不在同一个命名空间中。这就是为什么 foo
没有在你的测试脚本中定义。
如果 foo
在您的 Electron 前端中,如果它在 DOM 中,您可以使用 this.app.client
访问它。 this.app.browserWindow
或 this.app.webContents
可能能够访问全局变量?
(我知道 executeJavaScript()
不会工作 - 任何返回 promise 的函数基本上都不会工作。)
如果 foo
在您的后端,我会在我的问题中展示一个解决方法:Can Spectron call a function in back-end directly? (但我仍在寻找一种不需要我修改代码即可测试的方法)
关于testing - Spectron、mocha 和 chai 能否断言变量在 Electron 应用程序中具有预期值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49041558/
在执行期间,spectron 打开两个空白的终端窗口。第一个窗口是我想要的应用程序,其他窗口看起来像终端,里面没有任何东西。 目前我使用 focus() 聚焦到第一个窗口。 Github 问题链接:h
我尝试使用以下命令安装Spectron: npm install --save-dev spectron 但我收到此错误消息: npm ERR! Windows_NT 6.1.7601 npm ER
我只使用基本的 Spectron 测试文件(在 Typescript 中)打开我的应用程序,获取窗口计数,然后大概退出。然而,Spectron 的 app.stop()似乎只是关闭了开发工具窗口并让主
我正在使用 Spectron 测试 Electron 应用。我在文档示例中找到了有关如何获取窗口数量的信息,这非常简单。但是我正在寻找的是如何在单击另一个元素后检查一个元素的状态。在这里,我试图检查应
我正在使用 React 开发一个 Electron 桌面应用程序。尝试为代码的电子端设置测试。 我有一个 Launch.test.js 文件,我正在尝试用 Jest 测试 Spectron。 当我运行
我正在开发一个 Electron 应用程序。主进程打开第一个渲染器 (browserWindow)。当用户单击按钮时,此渲染器会向主进程发送一条 IPC 消息。收到此消息后,主进程将打开第二个不同的渲
我可以使用 Spectron 启动 Electron 应用程序,但无法对其执行任何操作。 操作系统:Windows 8.1 节点版本:10.16.0 Spectron:3.8.0 var Applic
我正在尝试在测试方面测试 Electron 的 Spectron,但在学习教程时,每当我运行 npm run test:e2e 时,我都会收到此错误消息。我的测试文件语法正确,但我不确定为什么我在编译
我想在我的存储库(https://github.com/DWboutin/jest-spectron-ts)中创建测试,但似乎都可以,但是我无法在测试中访问Application.client API
我正在尝试使用 Spectron 测试 Electron 应用程序。但我无法测试客户端窗口 javascript 全局变量。这是我的简化代码。请帮我。谢谢。 index.html
我正在使用 Spectron 测试基于 React 的 Electron 应用程序。我想选择一个 React 组件,我正在尝试为此访问 WebDriverIO 的浏览器并调用 react$,但是找不到
最近我发现使用 Electron 为我们的应用程序规划自动化测试有些困难。我尝试使用 Spectron,它看起来像是测试 Electron 应用程序的官方框架,但是,我发现他们网站上的文档很难理解。
我正在为用Electron编写的应用程序编写E2E测试。我需要测试一个有效调用shell.openExternal('link')的按钮,其中link是外部网站。我一直在Webdriver文档中寻找允
我有一个 Electron 应用程序,它首先启动一个启动器窗口(在渲染器进程中),它启动多个后台服务。在这些后台服务成功启动后,它会发送 "services-running"在其ipcRenderer
我正在使用 Spectron、mocha 和 chai-as-promised 进行测试。我的 IDE 是 Visual Studio Code。 我从测试中启动应用程序,如下所示: this.app
我正在尝试使用 Spectron 框架为 Electron 中实现的应用程序编写一些测试。当我的应用程序正确启动后,我想发送一个它已准备就绪的事件。我做了类似的事情 在应用程序中:我尝试这两个 ele
Electron v1.8.2 Spectron v3.8.0 添加光谱测试,但即使是非常基本的测试也会失败。 尝试运行: const { Application } = require('spect
我正在使用spectron针对我的 Electron 应用程序运行集成测试。除了尝试测试应用程序设置在应用程序重新启动之间是否正确保留之外,一切都工作正常。 运行测试时,我的应用程序会为每个测试启动新
我正在尝试使用 Spectron 为我们的 Electron 应用程序编写测试,但我遇到了设置问题。我使用 chai 的经典设置。我有一个包含设置代码的文件: const path = require
我们如何断言嵌入在 HTML 中的 javascript 变量在使用 electron 构建的应用程序中具有一些预期值?目前测试框架有spectron、mocha、chai、chai.should()
我是一名优秀的程序员,十分优秀!