使用节点 8 async/await 和 Angular 6 调试量角器时出错

2024-02-17

我无法让量角器调试器与节点 8 async/await 和 Angular 6 一起使用。以旧方式返回到节点 7elementExplorer, browser.pause() and browser.debugger()不是一个选择。也因为在未来,control flow正在从 Selenium 中删除,我一直读到使用 Node 8 async/await 而不是更好的调试体验control flow.

我正在使用 Angular 6.0.3、Angular CLI 6.0.5、节点 8.11.2 和 chrome 71.0.3578.98。我通过使用 CLI 生成测试应用程序来重现该问题:

ng new stack-overflow-debugging-protractor --style=scss --routing

使用 Angular CLI 生成此应用程序会自动安装和配置 Protractor 5.3.2。

我有一个运行的简单测试ng e2e成功:

describe('workspace-project App', () => {
  it('should display welcome message', () => {
    browser.get('/');
    expect(element(by.css('app-root h1')).getText()).toEqual('Welcome to app!');
  });
});

我按照这个文档来设置我的调试环境 https://github.com/angular/protractor/blob/master/docs/debugging.md

为了使其与 async/await 一起工作,我需要禁用control flow so in protractor.conf.js I add SELENIUM_PROMISE_MANAGER: false and in ./e2e/tsconfig.e2e.json我改变"target": "es5" into "target": "es2017"

在 e2e 测试中我添加async and await并添加命令debugger

describe('workspace-project App', () => {
  it('should display welcome message', async () => {
    await browser.get('/');
    debugger;
    await expect(element(by.css('app-root h1')).getText()).toEqual('Welcome to app!');
  });
});

当我执行时ng e2e它仍然成功运行:

我在终端会话中运行调试器:

node --inspect-brk ./node_modules/protractor/bin/protractor ./e2e/protractor.conf.js

我打开 chrome 检查器chrome://inspect/#devices在浏览器中找到当前运行的目标并点击inspect。然后我点击按钮resume script execution(或 F8),并且测试应在第一行暂停debugger关键词。

但事实并非如此,Chrome 会自动打开一个新窗口并显示错误ERR_CONNECTION_REFUSED。 Chrome DevTools 的控制台是空的。终端会话给出:

E/protractor - Could not find Angular on page http://localhost:4200/ : retries looking for angular exceeded
Failed: Angular could not be found on the page http://localhost:4200/. If this is not an Angular application, you may need to turn off waiting for Angular.
Please see https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load

所以我阅读了建议并添加getPageTimeout: 60000 to protractor.conf.js到 。然后我得到错误:

Failed: Error while running testForAngular: script timeout: result was not received in 11 seconds

似乎是同样的错误,所以我改变了protractor.conf.js line allScriptsTimeout: 11000 into 60000。然后我得到错误:

Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.
at ontimeout (timers.js:498:11)
at tryOnTimeout (timers.js:323:5)
(node:11716) UnhandledPromiseRejectionWarning: Error: 'fail' was used when there was no current spec, this could be because an asynchronous test timed out
(node:11716) UnhandledPromiseRejectionWarning: Unhandled promise rejection. 
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which wasnot handled with .catch(). (rejection id: 1) 

再次,所以我改变protractor.conf.js line defaultTimeoutInterval: 30000作为一部分jasmineNodeOpts into 60000。同样的错误。

我也尝试了更高的值,200000,但结果等待时间更长,但错误是相同的。

谁知道这个问题的解决方案?


直接运行 Protractor 不会自动启动应用程序来运行测试,这是工作的一部分ng e2e命令执行。

要解决此问题,您可以使用以下命令在单独的终端窗口中启动应用程序ng serve或者你可以运行调试器ng e2e命令(将在后台启动应用程序):

node --inspect-brk ./node_modules/.bin/ng e2e
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用节点 8 async/await 和 Angular 6 调试量角器时出错 的相关文章

  • Angular with/Angular Material - 对话框主题损坏

    您好 我遇到了 Angular Material 主题在对话框组件中中断的问题 其中文本和其他组件的颜色未按应有的方式工作 在 app component 中 我有一个设置图标按钮来打开对话框 main settings dialog 但当
  • 如何在 Angular 项目中使用 Bootstrap?

    我开始我的第一次Angular应用程序和我的基本设置已完成 我怎样才能添加引导程序我的申请 如果您可以提供一个示例 那么这将是一个很大的帮助 如果您使用Angular CLI要生成新项目 还有另一种方法可以使 bootstrap 可访问角度
  • Docker 绑定安装卷不会传播由角度“ngserve”执行监视的更改事件

    请按照下列步骤操作 定义 Dockerfile FROM node alpine RUN yarn global add angular cli RUN yarn global add node sass RUN mkdir volumes
  • Angular2 - 在反应表单上设置日期字段

    我有一个使用两个日期字段的组件 开始日期和结束日期 默认情况下 我禁用了结束日期字段 当他们选择开始日期时我会切换它 this transitionForm this fb group effectiveEndDate value disa
  • 如何使用深度等于 (Angular 7)

    通过 VS Code 自动导入 import deepEqual require deep equal 不起作用 错误 TS1202 定位时无法使用导入分配 ECMAScript 模块 考虑使用 import as ns from mod
  • Angular - 如何解析 event.path 内的对象

    现在这是一个很难解释的复杂问题 我会尽力解释 我有一个弹出窗口 我想从中唯一地标识单击事件是来自弹出窗口内部还是外部 我的第一个方法 我用一个包住了整个弹出框div与id 说 独特 因此 我将单击事件与主机侦听器绑定 我将为其获取事件对象
  • 在业力测试中按类名获取两个div(Angular 4.0)

    我有这样的看法 div div class header title Example title 1 div div div div class header title Example title 2 div div 在我的业力测试中 我
  • karma/jasmine 控制台更详细的测试结果

    我使用 Karma 和 Jasmine 进行 javascript 单元测试 假设我有一个失败的测试 如下所示 expect objectA toEqual expectedObjectA 当失败时 我看到控制台上转储了两个对象 并显示一条
  • 模块解析失败:意外的标记 (4:0)

    我正在尝试将 FULLCALENDAR 添加到我的 Angular v14 项目中 但在所有设置之后我突然面临这个错误 知道如何处理这个错误吗 包 json fullcalendar angular 5 11 0 fullcalendar
  • Angular-cli AOT 构建失败,并显示“致命错误:CALL_AND_RETRY_LAST 分配失败 - JavaScript 堆内存不足”

    我正在尝试使用 AOT 构建我的 angular cli 项目 ng build aot 但它因错误而失败 致命错误 CALL AND RETRY LAST 分配失败 JavaScript 堆内存不足 如果我用 prod flag 任何想法
  • 在具有多级分组的 HTML 表格中显示数据

    我必须通过使用 rowspan 进行分组来显示 HTML 表中的一些数据 下面是预期的 GUI 我有如下所示的 JSON 数据 JSON数据here https jsoneditoronline org id 1014438e5489485
  • 当选项卡索引更改时,mat-tab-group 滚动到页面顶部

    我有奇怪的行为mat tab group在角度材料中 当我更改选项卡索引时 它会将页面滚动到顶部 知道为什么吗 这是角度材料库中的一个已知错误 请参阅here https github com angular material2 issue
  • TypeScript 编译速度极慢 > 12 秒

    只是把它放在那里看看其他人是否也遇到这个问题 我已经使用 webpack 作为我的构建工具 使用 typescript 构建了一个 Angular 2 应用程序 一切都运行良好 但是我注意到 typescript 编译超级超级慢 我现在只有
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • 在“FormGroup”中预填充输入字段 - Angular2

    我正在使用 Angular2 反应形式 一切正常 直到我想在表单中的字段之一中显示预填充的值 设想 页面上有多个按钮 每个按钮都会打开一个表单 其中的字段如下 Name Email Message 产品代码 gt 此值应根据服务中的每个项目
  • Plesk Windows 部署 Node.js

    我创建了一个以 Node js 作为后端的 Angular 项目 这是服务器文件结构 Home directory httpdocs node hm dist browser folder server folder server js p
  • Angular 4 与 Webpack 2,动态加载脚本

    我刚刚在一个项目中尝试使用 Angular 4 和 Webpack 2 我试图在 ngOnInit 期间加载一些脚本 但遇到了一些问题 问题1 我的 ngOnInit 中有以下代码 System import node modules jq
  • 无法以角度正确导入 fireStore 模块

    我在运行 Angular 项目时收到此错误 这可能意味着库 angular fire firestore 声明 AngularFirestore 尚未被 ngcc 正确处理 或者 与 Angular Ivy 不兼容 检查是否有较新的版本 由
  • Typescript:按值检查对象是否存在于数组中

    我有这个数据 roles roleId 69801 role ADMIN roleId 69806 role SUPER ADMIN roleId 69805 role RB roleId 69804 role PILOTE roleId
  • 角度 - 传递管道作为变量

    如何存储和使用变量中的管道信息 我已经搜索了很多 但找不到解决方案 我想要实现的是将任何有效的管道信息作为变量 小数 百分比 日期 自定义等 传递 下面是一个简单的例子 父组件 ts columnsDef value 0 35 pipeIn

随机推荐

  • Sharepoint UserProfileManager 没有管理用户配置文件权限

    我有一个让我有点抓狂的问题 使用 UserProfileManager 作为未经授权的用户 问题 用户没有 管理用户配置文件 权限 但我仍然想使用 UserProfileManager 使用 SPSecurity RunWithElevat
  • 反转 HList 并转换为类?

    我使用 Shapeless 在 Akka 中累积物化值作为 HList 并将其转换为案例类 对于这个问题 您不必了解 Akka 太多 但默认方法将物化值累积为递归嵌套的 2 元组 这并不是很有趣 因此 Shapeless HLists 似乎
  • 通过 Socket 连接使用 PrintWriter 将 PDF 文件打印到打印机

    我必须使用具有特定 IP 地址的打印机打印 pdf 文件 我可以打印特定的文本 但我想打印文件或 html 解析的文本 My Code try Socket sock new Socket 192 168 0 131 9100 PrintW
  • NetFSMountURLSync 无法使用自定义安装点?

    我正在尝试以编程方式挂载一些 WebDAV 和 SMB 共享 并且我想为卷指定除默认名称之外的特定名称 例如 如果我安装 https my sharepoint school edu personal grigutis https my s
  • Android AppWidget 配置 - 在新任务中启动

    我一直在寻找这个 所以我有一个应用程序小部件 它有一个配置活动 我可以在按下应用程序上的按钮时打开该活动 场景是 打开应用程序 使用主页按钮关闭应用程序 选择添加我的小部件 我已经配置了小部件 放置在我的主屏幕上 然后使用小部件上的按钮再次
  • 如何在perl中读取匹配字符串上方的n行?

    假设我有一个文件 xx txt 它包含数据 1 I am here 2 to work in 3 Perl for writing 4 a script for 5 myself 假设我想搜索字符串脚本并想显示三个 上面有几行 我该怎么办
  • int a=1, b=a++; 是否调用未定义的行为?

    Does int a 1 b a 调用未定义的行为 初始化之间没有序列点介入a及其在初始化程序中的访问和修改b 但据我所知 初始化不是对象的 修改 指定初始值设定项来给出对象的 初始值 根据 6 7 8 初始化 第 8 段 初始化器指定存储
  • 可以直接用二进制写程序吗?我怎样才能让计算机执行它?

    我知道这可能看起来很奇怪并且自找麻烦 但我认为体验古代程序员以前经历过的事情是很有趣的 那么如何执行仅用二进制编写的程序呢 假设我知道我在做什么 当然不使用汇编 我只想写一系列像111010111010101010101并执行它 那么我该怎
  • 如何使用 WPF 后台工作者

    在我的应用程序中 我需要执行一系列初始化步骤 这些步骤需要 7 8 秒才能完成 在此期间我的 UI 变得无响应 为了解决这个问题 我在一个单独的线程中执行初始化 public void Initialization Thread initT
  • -XX:+PrintGC 和 -verbose:gc 之间的区别

    我想了解以下之间的区别 XX PrintGC and verbose gc显然这些看起来很相似 本文没有列出verbose gc http www oracle com technetwork articles java vmoptions
  • 如何使用 TFS 构建服务器中的模板运行 NUnit 测试

    我需要使用 TFS Server 2010 中的工作流模板运行 nUnit 测试 我找到了下面所有解释如何配置构建服务器的参考资料 http morten lyhr dk 2008 05 using nunit and ncover wit
  • Error62:在 VBA 脚本中输入文件末尾以搜索目录中包含关键字的文件

    希望有人能够指出我误入歧途的地方 我创建了一个脚本来搜索目录中的所有文件 并返回包含已输入到单元格中的特定关键字的任何文件的文件路径和文件名 该脚本似乎适用于我在桌面上设置的测试文件夹 但是当我尝试搜索包含更多文件的另一个目录时 我收到 输
  • 自定义活动设计器中的参数验证

    我在验证自定义活动的设计器中正常工作时遇到问题 重现该行为的最简单示例如下 我有一个自定义 WF4 活动 其中包含存储在字典中的动态参数集合 Designer typeof DictionaryActivityDesigner public
  • Rand Index函数(聚类性能评估)

    据我所知 python 中没有可用于 Rand Index 的软件包 而对于调整后的 Rand Index 您可以选择使用sklearn metrics adjusted rand score labels true labels pred
  • 获取自己的标头 $Resource AngularJs

    我有 GO 语言的 REST API 和 Angularjs 的前端 但是当我以 Angular 形式获取资源时 我的自定义标头不存在 控制器 Persons query function data headerGetter status
  • 共享元素转换不适用于 Android 中的添加片段

    我观察到共享元素转换仅适用于 替换 方法 有什么方法可以使其与 add 方法一起使用 None
  • 使用php通过android volley发送图像[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在用数据和图像从 android 到 php 发布帖子 我正在 android 中缩小图像并对其进行 base 64 编码 当通过齐射
  • [Firestore][I-FST000001] 无法到达 Firestore 后端

    我已经配置了 Firebase Firestore 但 Firestore 曾返回此错误 Firestore I FST000001 无法到达 Firestore 后端 我正在使用 Swift 4 和 Xcode 9 有什么想法吗 2018
  • 程序部署后 JNI 找不到共享库

    将导出的 Java 项目从开发计算机移至生产环境后 我遇到了麻烦 java项目 一个Eclipse插件 有一个我写的JNI库 它依赖于一个开源库 而这个库又依赖于Boost 我在我的 SLES11 机器上编译了所有内容 包括 Boost 并
  • 使用节点 8 async/await 和 Angular 6 调试量角器时出错

    我无法让量角器调试器与节点 8 async await 和 Angular 6 一起使用 以旧方式返回到节点 7elementExplorer browser pause and browser debugger 不是一个选择 也因为在未来