问题标签 [angular-e2e]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
131 浏览

angular - 升级到 ng7 后,E2e 测试无所作为

我们刚刚完成了对 Angular 7 的升级,从那时起,我们尝试运行 e2e 测试时它什么也没做。它不会抛出任何错误,只是什么都不做。

我尝试启动一个全新的 Angular 项目,并且 e2e 测试在那里运行良好。我复制了他们的 angular.json 文件,只是替换了路径,它做同样的事情。

其他一切都完美无缺。单元测试、服务和 aot 构建。

E2e输出

角.json:

量角器.conf.js

0 投票
1 回答
626 浏览

angular - e2e 测试角度 7:失败:无法读取未定义的属性“fetchData”

我正在尝试在 Angular 7 中对我的服务进行一些 e2e 测试,该方法返回 Observable,这是我的方法:

这是我的测试:

这是我的终端错误:

我想测试我的返回方法的真实价值,而不是像单元测试那样,他们不知道我的方法fetchData

如果您需要更多信息,请告诉我。

多谢。

0 投票
1 回答
1236 浏览

angular - 角度 e2e 测试:如何测试服务注入(使用)另一个服务

我正在尝试使用 e2e test angular 7 测试我的服务,我的问题是我不知道该怎么做:

这是我的服务,(方法返回 Observable):

它在我的服务中还有另外两个服务UrlDecoratorServiceAPIFetcherService

这是我的 e2e 测试:

我需要的是如何将两个服务UrlDecoratorServiceAPIFetcherService注入我的 e2e 测试,或者如何测试注入另一个服务的服务?

如果您需要更多信息,请告诉我。

0 投票
0 回答
835 浏览

angular - 如何在 e2e 测试角度(量角器)中注入服务

我需要向我的 e2e 测试注入两个服务来测试我的服务,第一个UrlDecoratorService第二个是APIFetcherService如何在 e2e 测试(量角器)中做到这一点?

这是我发布的两个问题以了解我的问题。

第一篇文章

第二个帖子

并且知道我找不到解决方案。

0 投票
0 回答
124 浏览

angular - 量角器没有得到元素

我有一个 Angular 6 应用程序,我正在尝试进行 e2e 测试。在这个测试中,我首先登录,然后尝试获取所有菜单项并单击它们,但是我什至无法获得menu. 我的测试结果超时

应该可以通过菜单轻松导航 - 失败:脚本超时:11 秒内未收到结果(会话信息:chrome=70.0.3538.77)

和下面的第一个字符串(无论如何都没有多大意义)

来自:任务:Protractor.waitForAngular() - 定位器:Driver.schedule 处的 [object Object]

0 投票
1 回答
1306 浏览

angular - 量角器测试挂起等待 browser.wait 并禁用控制流

我们正在以异步/等待方式编写 e2e 测试,以便能够调试它们。但是测试有

就挂在这条线上。我不知道为什么,我不明白。启用控制流时它运行良好,但一旦我们禁用它,它就会开始挂起。测试用例看起来像这样

想法是在我们登录后等待导航完成。在我可以看到 e2e 执行的浏览器中,可以清楚地看到它到达了正确的页面并且徽标在那里,但它卡在那里直到超时发生。有谁知道为什么?

0 投票
0 回答
285 浏览

selenium - Angular CLI 7:如何在 e2e 中使用随机端口?

背景

我在 CI 中使用 selenium 服务器运行 e2e-tests,这会导致我的 protractor.conf.js 有以下结果:


问题

在将 Angular CLI 从 1.7.2 升级到 7.0.6 时,我遇到了这个问题。

在 CLI 1.7.2 中运行ng e2e将使用随机分配的端口为我的应用程序提供服务,该端口也将馈送到 selenium 服务器,使其能够成功访问我的应用程序。

在 CLI 7.0.6 中,我的应用程序改为在端口 4200 上提供服务。如果我提供--port=0它将在随机分配的端口上为我的应用程序提供服务,但是会http://<hostname>:0被馈送到 selenium 服务器,这意味着它会尝试访问我的应用程序,但会失败。

如何在 CLI 7 中获得类似的行为?

0 投票
1 回答
1074 浏览

angular - 如何使用量角器读取无线电场的值

我正在尝试读取我的测试用例选择的单选按钮的值,但我总是收到如下错误:

预计“开”为“M”。

我从上述错误中了解到,量角器期望值“开”而不是“M”。

我的问题很简单:我无法读取我选择的单选按钮的输入值。

几个场景以便更好地理解。

  1. 我的单选按钮没有选择默认值。
  2. 如果用户选择了一个已经存在的成员,则默认情况下会选择一个单选按钮值。
  3. isValSelectedvalue 最初设置为 false,如果用户显式选择单选按钮或用户从可用名称列表中选择,则该值为 true

在过去的几天里,我一直无法解决这个问题。任何帮助,将不胜感激。我也尝试过使用承诺,但目前没有任何效果。

我的标记:

我的页面对象:

我的测试用例:

0 投票
0 回答
371 浏览

protractor - 随机端口上的角端对端测试

我们在 CI 环境中运行角度 e2e 测试,其中测试在同一构建从属设备上同时运行(例如针对不同的分支)。

由于我们最近升级到 angular 7(从 angular 5)量角器使用默认端口(4200)。CI 作业现在偶尔会失败,因为端口 4200 正在使用中。

我找到了使用端口 0 运行的选项:

这似乎使用了随机端口,但测试失败,见下文。

我尝试了一个用 angular cli 创建的干净的新 angular 项目,没有任何变化。

工作正常

如何在没有端口号冲突的情况下运行 e2e 测试?

Angular CLI:7.1.0 节点:v8.9.3 操作系统:Windows 10 版本 1607

提前致谢,

此输出来自失败的运行: $ ng e2e --port 0 ** Angular Live Development Server 正在侦听 localhost:49152,在http://localhost:49152/
上打开浏览器**

日期:2018-12-03T15:16:48.890Z
哈希:97006afaee956149f40f
时间:7337ms
块 {main} main.js, main.js.map (main) 9.77 kB [初始] [渲染]
块 {polyfills} polyfills.js, polyfills.js.map (polyfills) 223 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.08 kB [entry] [rendered]
chunk {styles} styles.js, 样式。 js.map (styles) 16.3 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 3.43 MB [initial] [rendered]
i 「wdm」:编译成功。
[16:16:49] I/update - chromedriver: 文件存在 C:\Users\rob.gansevles\tmp\noot\node_modules\protractor\node_modules\webdriver-manager\selenium\chromedriver_2.44.zip
[16:16:49] I/update - chromedriver: 解压 chromedriver_2.44.zip
[16:16:49] I/update - chromedriver: chromedriver_2.44.exe 是最新的
[16:16:50] I/launcher - 运行 1 个 WebDriver 实例
[16:16:50] I/direct - 直接使用 ChromeDriver...

DevTools 监听 ws://127.0.0.1:50805/devtools/browser/7ee01341-be32-4d52-ae53-0794c11c8864
Jasmine 已启动
[23540:12920:1203/161652.814:ERROR:tcp_socket_win.cc(861)] 连接失败:10049
[23540:12920:1203/161652.814:ERROR:tcp_socket_win.cc(861)] 连接失败:10049
[23540:12920:1203/161652.823:ERROR:tcp_socket_win.cc(861)] 连接失败:10049
[23540:12920:1203 /161652.823:ERROR:tcp_socket_win.cc(861)] 连接失败:10049 [16:17:03] E/protractor - 在http://localhost:0/
页面上找不到 Angular :重试寻找超过的角度

workspace-project App
× 应该显示欢迎消息- 失败:在页面http://localhost:0/
上找不到 Angular 。如果这不是 Angular 应用程序,您可能需要关闭等待 Angular。 请参阅https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load 请参阅https://github.com/angular/protractor/blob /master/docs/timeouts.md#waiting-for-angular-on-page-load at executeAsyncScript_.then (C:\Users\rob.gansevles\tmp\noot\node_modules\protractor\built\browser.js:720: 27)





在 ManagedPromise.invokeCallback_ (C:\Users\rob.gansevles\tmp\noot\node_modules\selenium-webdriver\lib\promise.js:1376:14)
在 TaskQueue.execute_ (C:\Users\rob.gansevles\tmp\ noot\node_modules\selenium-webdriver\lib\promise.js:3084:14)
在 TaskQueue.executeNext_ (C:\Users\rob.gansevles\tmp\noot\node_modules\selenium-webdriver\lib\promise.js:3067: 27)
在 asyncRun (C:\Users\rob.gansevles\tmp\noot\node_modules\selenium-webdriver\lib\promise.js:2927:27)
在 C:\Users\rob.gansevles\tmp\noot\node_modules\ selenium-webdriver\lib\promise.js:668:7
at
process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: Run it("should display welcome message") in control flow
在 ControlFlow.emit (C:\Users\rob.gansevles\tmp\noot\node_modules\selenium-webdriver\lib\events.js:62:21)
在 ControlFlow.shutdown_ (C:\Users\rob.gansevles\tmp\ noot\node_modules\selenium-webdriver\lib\promise.js:2674:10)
在 shutdownTask_.MicroTask (C:\Users\rob.gansevles\tmp\noot\node_modules\selenium-webdriver\lib\promise.js:2599: 53)
来自异步测试:套件
错误
。(C:\Users\rob.gansevles\tmp\noot\e2e\src\app.e2e-spec.ts:10:3)
在对象。(C:\Users\rob.gansevles\tmp\noot\e2e\src\app.e2e-spec.ts:3:1)
在 Module._compile (module.js:635:30)
在 Module.m._compile ( C:\Users\rob.gansevles\tmp\noot\node_modules\ts-node\src\index.ts:439:23)
在 Module._extensions..js (module.js:646:10)
在 Object.require.extensions.(匿名函数) [as .ts] (C:\Users\rob.gansevles\tmp\noot\node_modules\ts-节点\src\index.ts:442:12)


  • 失败 *

1) 工作区项目应用程序应该显示欢迎消息- 失败:在页面http://localhost:0/
上找不到 Angular 。如果这不是 Angular 应用程序,您可能需要关闭等待 Angular。 请参阅https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load

在 10 秒内执行了 1 个规范中的 1 个(1 个失败)。
[16:17:03] I/launcher - 0 个 WebDriver 实例仍在运行
[16:17:03] I/launcher - chrome #01 失败 1 次测试
[16:17:03] I/launcher - 总体:1 个失败的规范
[16:17:03] E/launcher - 进程退出,错误代码 1
发生意外错误:未定义
错误命令失败,退出代码 1。
信息访问https://yarnpkg.com/ en/docs/cli/run获取有关此命令的文档

0 投票
1 回答
456 浏览

angular - Angular 7 Protractor 非 Angular 登录页面

在一个 Angular 项目中,我开始从事 E2E 测试。我正在使用 Protractor + Jasmine 创建和运行测试。

我尝试测试的 WebApp 从登录页面开始,该页面是我们客户提供的非 Angular 页面。成功登录后,用户会被重定向到我们的 WebApp,它是一个 Angular 应用程序。现在运行 E2E 测试迫使我手动登录到 WebApp。(我们未来的计划是在开始测试时发送一个访问令牌,这样我们就绕过了登录页面。)

我现在想知道的是当前的工作流程。Protractor 是否会等到我成功登录并在识别 Angular 时开始测试?或者它是否期望整个应用程序都是 Angular 并且测试会立即失败?如果是这样,我猜第一步是实现访问令牌以绕过非 Angular 部分,然后编写实际测试。很高兴能得到一些关于我的想法的反馈,因为我们的团队根本没有关于 E2E 测试的经验,并且在网络上搜索并不令人满意,因为大多数结果都相当陈旧并且与 AngularJS 相关。