sách gpt4 ai đã đi

CI 中的 PHPUnit 停滞

In lại 作者:行者123 更新时间:2023-12-03 11:21:39 27 4
mua khóa gpt4 Nike

我们遇到了 PHPUnit 有时无法在 CI 中正确运行我们的测试套件的问题。该行为表现为大约 1/3 的测试未能启动并且 CI 步骤超时。有趣的是,我们没有看到这种行为:

  • 在我们的机器上本地
  • 每次我们运行测试
  • 发生在黄昏测试

  • 我们的设置是使用 docker compose 运行测试。我们专门先启动应用容器的依赖,然后暂停 30 秒等待它们上来(即数据库)。

    我尝试解决的一些问题并没有改变:
  • 在进程隔离开启的情况下运行测试。
  • 将测试套件拆分为两个以运行更少的测试(两个拆分都有相同的问题)

  • 测试在 Github Actions 中运行,这使得机器可以使用大约 7 GB 的内存以及多个内核。

    同样有趣的是,基于黄昏的测试从未像这样停滞不前,尽管它们使用相同的 docker-compose 文件但有额外的服务(如 Selenium)。

    我不确定这是否有明确的答案,但我现在不知道接下来要尝试什么(没有自己托管 GitHub Action 运行器)。

    失败测试的输出如下所示:
    + sleep 30
    + docker-compose -f docker-compose.ci.yml run --rm postgres pg_isready -h postgres -d testing -U testing -t 30
    postgres:5432 - accepting connections
    + docker-compose -f docker-compose.ci.yml run --no-deps backend phpunit '--filter=/::test[J-Z|j-z]/' --testdox
    Pulling backend (***.dkr.ecr.ap-southeast-2.amazonaws.com/builder:acb548c6125ad97e57e8070c414644c7e6f385f5)...
    acb548c6125ad97e57e8070c414644c7e6f385f5: Pulling from builder
    Digest: sha256:c84a53dbb201b809a2325a93c52d4a362eefa6de64ab98f759e43c5dd363aac2
    Status: Downloaded newer image for ***.dkr.ecr.ap-southeast-2.amazonaws.com/builder:acb548c6125ad97e57e8070c414644c7e6f385f5
    PHPUnit 9.1.5 by Sebastian Bergmann and contributors.

    ##[error]The operation was canceled.

    成功运行:
    + sleep 30
    + docker-compose -f docker-compose.ci.yml run --rm postgres pg_isready -h postgres -d testing -U testing -t 30
    postgres:5432 - accepting connections
    + docker-compose -f docker-compose.ci.yml run --no-deps backend phpunit '--filter=/::test[A-I|a-i]/' --testdox
    Pulling backend (***.dkr.ecr.ap-southeast-2.amazonaws.com/builder:acb548c6125ad97e57e8070c414644c7e6f385f5)...
    acb548c6125ad97e57e8070c414644c7e6f385f5: Pulling from builder
    Digest: sha256:c84a53dbb201b809a2325a93c52d4a362eefa6de64ab98f759e43c5dd363aac2
    Status: Downloaded newer image for ***.dkr.ecr.ap-southeast-2.amazonaws.com/builder:acb548c6125ad97e57e8070c414644c7e6f385f5
    PHPUnit 9.1.5 by Sebastian Bergmann and contributors.

    Audit Controller (Tests\Feature\Admin\AuditController)
    ✔ Audits index

    (我已经截断了完整的测试输出)

    有时我会看到它在停止之前达到第一个测试。

    1 Câu trả lời

    我在 Codeception 框架的测试中遇到了类似(但不一样)的问题,但我没有使用 Github Actions 和 docker。
    问题在于测试期间如何将数据库部署到服务器。由于该数据库已部署了很长时间,但在那之后,测试开始了。我们对服务器没有限制,所以没有超时。
    在本地机器上它工作正常。
    正如我所见,您正在使用数据库运行功能/验收测试,因此我建议检查数据库模块。

    关于CI 中的 PHPUnit 停滞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62125230/

    27 4 0
    行者123
    Hồ sơ cá nhân

    Tôi là một lập trình viên xuất sắc, rất giỏi!

    Nhận phiếu giảm giá Didi Taxi miễn phí
    Mã giảm giá Didi Taxi
    Giấy chứng nhận ICP Bắc Kinh số 000000
    Hợp tác quảng cáo: 1813099741@qq.com 6ren.com