【问题标题】:Start application during Heroku CI在 Heroku CI 期间启动应用程序
【发布时间】:2020-05-07 11:12:38
【问题描述】:

我想在 Heroku CI 阶段(针对每个 PR 运行)实施集成/e2e 测试。测试正在通过 REST API 连接到正在运行的服务器。

如何在 CI 运行期间进行数据库迁移和服务器启动(类似于审查应用程序)?我正在使用in-dyno postgres

【问题讨论】:

  • 到目前为止,您与 Heroku 的集成程度以及为什么使用 Heroku 进行 CI 测试?
  • 我想我使用环境>test>scripts>test-setup|test 找到了解决方案。我让它工作后会发布答案

标签: java maven heroku continuous-integration integration-testing


【解决方案1】:

我尝试在app.json 中设置以下内容:

  "environments": {
    "test": {
      "addons": ["heroku-postgresql:in-dyno"],
      "scripts": {
        "test-setup": "mvn package -P no-tests && bash migrate.sh",
        "test": "bash server.sh && mvn test"
      }
    }
  }

这可行,但 CI 实例没有关闭,因为服务器仍在运行,2 小时后超时。没有成本效益,所以我最终将服务器实例嵌入到集成测试中,一旦测试完成,它就会自动关闭。

最终app.json

  "environments": {
    "test": {
      "addons": ["heroku-postgresql:in-dyno"],
      "scripts": {
        "test-setup": "mvn package -P no-tests && bash migrate.sh",
        "test": "mvn test"
      }
    }
  }

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2011-09-23
    • 2020-01-11
    • 2012-11-10
    相关资源
    最近更新 更多