首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ng e2e测试超时

ng e2e测试超时
EN

Stack Overflow用户
提问于 2018-01-11 02:42:38
回答 1查看 1.2K关注 0票数 2

问题

我的e2e测试在一段时间前停止了工作,没有对其进行任何更改。我不知道为什么它会超时,我自己也不确定如何诊断。我了解到我测试中的代码实际上是在Angular准备好时运行的承诺,而不是更早地知道这一点错误地让我相信我的问题是我的测试在Angular准备好之前就运行了。

现在,我的page.getParagraphText()调用中有一个.then(...)和一个.catch(...),用来查看最终发生了什么。30秒后(我增加了它愿意等待的时间),它就会出错,并出现超时错误。我去了它建议的url,尝试了所有看起来相关的东西,但都没有用。

版本

代码语言:javascript
复制
$ 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测试时,我注意到这不是我过去看到的问题。

问题

如何诊断挂机原因?这些测试超时的原因是否相当常见?

app.po.ts

代码语言:javascript
复制
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测试期间出现的窗口的大小,测试就会立即运行。但很明显,我不想为每次测试运行手动调整窗口大小。但这是否暗示了问题可能是什么呢?

换句话说,如果我对每个测试执行以下操作,它们将运行:

代码语言:javascript
复制
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');
  });
});
EN

回答 1

Stack Overflow用户

发布于 2018-01-12 13:15:56

查看有关TimeOut的protractor官方网站:http://www.protractortest.org/#/timeouts

代码语言:javascript
复制
exports.config = {

    allScriptsTimeout: (30 * 1000),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48194109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档