我的e2e测试前一段时间停止工作,没有对其进行任何更改。我不知道为什么会超时,我不知道如何自己诊断。我已经知道我的测试中的代码实际上是一个在Angular准备就绪时运行的Promise,并且之前不知道这个错误导致我相信我遇到的问题是我的测试在Angular准备好之前就已经运行了。
现在我的.then(...)
电话上有一个.catch(...)
和一个page.getParagraphText()
,看看最终会发生什么。 30秒后(我已经增加了愿意等待的时间),它会因超时错误而出错。我已经去了它建议的网址并尝试了任何看起来相关的东西,但没有用。
$ ng version
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 1.6.3
Node: 8.9.4
OS: win32 x64
Angular: 5.1.3
... animations, common, compiler, compiler-cli, core, forms
... http, platform-browser, platform-browser-dynamic
... platform-server, router, service-worker
@angular/cli: 1.6.3
@angular/language-service: 4.4.6
@angular-devkit/build-optimizer: 0.0.36
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.42
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.3
@schematics/angular: 0.1.11
@schematics/schematics: 0.0.11
typescript: 2.4.2
webpack: 3.10.0
我的量角器配置与我创建的任何新的Angular CLI项目匹配,而我生成的那些新项目对他们的e2e测试没有任何问题。我没有更改我开始使用的应用程序默认e2e测试,但是肯定希望开始在e2e空间中编写更多测试。
起初,我认为浏览器没有被捕获,因为我之前遇到过这个错误。但是当我想出如何在vs代码中调试e2e测试时,我注意到这与我过去看到的问题不同。
如何诊断挂断的内容?这些测试暂停是否有相当常见的原因?
import { browser, by, element } from 'protractor';
export class TDPortalPage {
navigateTo() { return browser.get('/'); }
getParagraphText() {
return element(by.css('header.header > div.header-content > div.header-logo > a.logo > span.header-title')).getText();
}
}
我还有这个问题。我学到的另一件事是,只要我调整e2e测试期间出现的窗口,测试就会立即运行。但显然,我不希望为每次测试运行手动调整窗口大小。但这是否暗示了问题可能是什么?
换句话说,如果我对每个测试都执行此操作,则会运行:
import { browser } from 'protractor';
import { TDPortalPage } from './app.po';
describe('tdportal App', () => {
let page: TDPortalPage;
beforeEach(() => {
page = new TDPortalPage();
});
it('should display message saying Title', () => {
page.navigateTo()
// THIS IS WHAT ALLOWS MY TEST TO RUN. BUT I HAVE TO DO IT TO EACH TEST.
.then(_ => browser.manage().window().setSize(800, 600));
expect(page.getParagraphText()).toEqual('Title');
});
});
答案 0 :(得分:1)
查看有关TimeOut的量角器官方网站:http://www.protractortest.org/#/timeouts
exports.config = {
allScriptsTimeout: (30 * 1000),