我们在 CI 环境中运行角度 e2e 测试,其中测试在同一构建从属设备上同时运行(例如针对不同的分支)。
由于我们最近升级到 angular 7(从 angular 5)量角器使用默认端口(4200)。CI 作业现在偶尔会失败,因为端口 4200 正在使用中。
我找到了使用端口 0 运行的选项:
ng e2e --port 0
这似乎使用了随机端口,但测试失败,见下文。
我尝试了一个用 angular cli 创建的干净的新 angular 项目,没有任何变化。
ng e2e
工作正常
如何在没有端口号冲突的情况下运行 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获取有关此命令的文档