在常规测试期间查找lib目录

时间:2017-04-02 12:42:01

标签: erlang travis-ci common-test

我的问题是,我的Erlang应用程序应该如何在priv目录中可靠地找到二进制文件,而不仅仅是在生产中;如果安装正确,但在常规测试期间?

我今天意识到当我将一个travis-ci配置添加到一个旧的Erlang应用程序并将其推送到git-hub时,它在本地为我工作的过程比我想象的要脆弱得多。 travis-ci构建失败,因为它并非无理地将我的repo检出到以repo命名的目录中,该目录的形式为erlang-APP。本地我的应用程序位于名为APP-VSN的目录中。

这样做的结果是对code:lib_dir(APP)的调用在本地常见测试运行期间返回正确的结果,但是如果我将当前目录重命名为erlang-APP而不是APP-VSN(或者只是APP也可以)我的本地构建失败,就像它对travis-ci一样,因为code:lib_dir(APP)返回{error,bad_name}。好像..的行为被添加到rebar ct的库路径中。

将我的github repo从erlang-APP重命名为APP解决了travis-ci构建失败...... 但是知道构建测试只会根据目录的名称传递,而repo会被检出并不适合我。

1 个答案:

答案 0 :(得分:1)

一种方法是使用软链接(在版本控制下的repo中,或在初始化测试时创建),并使您的Erlang代码路径通过链接。例如,“。/ APP” - > “。”或“./lib/APP” - > “..”。