【问题标题】:How to make ng e2e run on available port?如何使 ng e2e 在可用端口上运行?
【发布时间】:2018-07-04 06:11:16
【问题描述】:

升级到 Angular 6 后,ng e2e 无法在可用端口上运行。 例如,如果您使用以前版本的 Angular(我们之前使用 4),您将在端口号 4200 中拥有应用服务,当我们同时运行 ng e2e 时,它会选择一个空闲端口(如 49152)运行测试。

在 Angular 6 升级后,当我尝试在类似情况下运行测试时,它会失败并显示错误消息“端口 4200 已在使用中”。

我不想手动将--port {port number} 传递给命令用于 CI 目的,因为硬编码端口号会在 CI 中的并行执行中出现问题。升级到 Angular 6 时出现问题,我应该更改配置吗?

【问题讨论】:

    标签: angular typescript protractor e2e-testing


    【解决方案1】:

    我找到了解决办法。

    只需运行 ng e2e <app-name> --port 0 即可在可用端口上运行。

    当这个命令执行时,测试会在并行执行的情况下寻找可用的端口。我们不需要每次都明确地硬编码或提供端口号。

    【讨论】:

    • 非常感谢,它帮助了我的问题。我在运行 e2e 时得到了这个:“端口 8080 已在使用中。使用 '--port' 指定不同的端口。”
    • Protractor 是如何知道端口的?是否可以检索所选端口? - 我问是因为我使用的是柏树,而且我有这个基本 URL,包括。我必须传递给赛普拉斯的端口号,还有一个 CORS 问题,我需要通过传递相同的端口号来解决
    【解决方案2】:

    我遇到了类似的问题。您可以尝试这样的操作:在您的 package.json 文件中,在 scripts 中,您可以从那里输入 "e2e": ng e2e --port number,在命令行中,您可以输入 npm run e2e

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 2016-12-29
      • 2011-08-31
      相关资源
      最近更新 更多