【发布时间】:2018-09-10 03:44:20
【问题描述】:
我绞尽脑汁并在互联网上搜索了一种使量角器 e2e 测试代码同步的方法,但无济于事!我希望实现的是无限期地重复相同的量角器测试,直到我关闭浏览器或结束测试或通过命令行上的 ^(control)c 结束它。这是我正在尝试做的一个示例:
import { AppPage } from './app.po';
import { browser } from 'protractor';
import { interval } from 'rxjs';
import { takeWhile, switchMap } from 'rxjs/operators';
describe('workspace-project App', () => {
let page: AppPage;
let testComplete = false;
beforeEach(() => {
page = new AppPage();
});
while (true) { // Doesn't work
it('should display welcome message', () => {
page.navigateTo();
expect(page.getParagraphText()).toEqual('Welcome to testAngular6!');
console.log('Executing tests');
browser.wait(function () { return true; }, 5000);
});
}
});
但是围绕“it”测试的 while 循环不起作用并一直循环。我意识到我不能使用任何量角器/网络驱动程序等待命令甚至 rjx 间隔 API 来实现这一点,因为这纯粹是一个 JavaScript 问题。由于 JavaScript 是单线程的。请问我怎么可能做到这一点?互联网上有很多关于此的问题,但有些问题没有答案,有些问题充其量是相似的,但并不完全相同!非常感谢您的帮助。
【问题讨论】:
-
Jasmine 设计不支持此功能。 Jasmine 将在执行其中的任何
it块之前加载每个 spec.js。 Jasmine 需要知道加载后 spec.js 中有多少it块。但是你的while循环会生成无穷大的it块。
标签: javascript angular protractor