gpt4 book ai didi

release - 使用 exrm 测试 elixir 发布版本

转载 作者:行者123 更新时间:2023-12-04 02:17:58 26 4
gpt4 key购买 nike

我正在使用 exrm 构建 phoenix 应用程序。

好的做法表明,我应该针对相同的二进制文件进行测试,然后我将推向生产。

Exrm 让我能够在没有安装 Erlang 或 Elixir 的机器上部署 phoenix,这使得拉取 docker 镜像的速度更快。

有没有办法针对 exrm 构建的二进制文件启动mix test

最佳答案

应该注意的是,发布不是二进制文件。当然它们被打包成一个 tarball,但这只是为了简化部署,它包含的实际上是二进制文件 .beam使用 MIX_ENV=prod mix compile 生成的文件,加上 ERTS(如果你捆绑了它),Erlang/Elixir .beam文件,以及用于启动应用程序的启动脚本/配置文件等。

所以简而言之,您的代码在发布版中的行为与使用 MIX_ENV=prod 运行时的行为相同(假设你跑了 MIX_ENV=prod mix release )。唯一的实际区别是您是否已正确配置您的应用程序以打包在发布中,测试这归结为对 /tmp/<app> 进行测试部署。并启动它以确保您没有忘记将依赖项添加到 applications在 mix.exs 中。

您需要测试的另一个因素是您是否正在对您的应用程序进行热升级/降级,在这种情况下,您需要在本地进行测试部署以确保按预期应用升级/降级,因为 exrm 会生成默认 .appup文件,它们可能并不总是做正确的事情,或者你需要它们做的所有事情,在这种情况下,你需要适本地编辑它们。我通过部署到 /tmp/<app> 来做到这一点启动旧版本,然后将升级 tarball 部署到 /tmp/<app>/releases/<new version>/<app>.tar.gz , 并运行 /tmp/<app>/bin/<app> upgrade <version>并测试应用程序是否按预期升级,然后运行先前版本的降级命令以查看它是否正确回滚。测试的性质因您所做的代码更改而异,但这就是测试的要点。

希望这有助于回答您的问题!

关于release - 使用 exrm 测试 elixir 发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32877335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com