首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用exrm测试长生不老版本构建

用exrm测试长生不老版本构建
EN

Stack Overflow用户
提问于 2015-09-30 23:47:50
回答 1查看 541关注 0票数 3

我正在用exrm构建凤凰应用程序。

良好的实践表明,我应该对相同的二进制进行测试,我将推动生产。

Exrm使我能够在没有安装Erlang或Elixir的机器上部署菲尼克斯,这使得拖坞映像更快。

有没有一种方法可以针对由exrm构建的二进制文件启动mix test

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-01 00:25:09

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

因此,简而言之,您的代码在发行版中的行为将与在MIX_ENV=prod中运行时相同(假设您运行了MIX_ENV=prod mix release)。唯一的实际区别在于,您是否正确地将应用程序配置为已打包到发行版中,并将其测试归结为对/tmp/<app>进行测试部署并引导它,以确保您不会忘记在mix.exs中向applications添加依赖项。

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

希望这能帮助回答你的问题!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32877335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档