我正在尝试使用rebar作为eunit测试运行程序来编写简单的erlang应用程序。有没有办法以编程方式将烦人的日志消息重定向到文件中?没有钢筋,我可以说erl -kernel error_logger "{file,\"test.log\"}"
来做到这一点,但是如何使用钢筋呢?
Generalizinig的问题是,在运行测试时,是否可以使用钢筋通过一些应用程序环境设置?
最佳答案
回答我自己的问题。 As discussed here,有一种使用ERL_AFLAGS环境变量将erlang标志传递到钢筋的方法。因此,可以使用所有必要的环境设置来创建配置文件,并说ERL_AFLAGS="-config /path/to/config" rebar eunit
。
我的问题的解决方案是:
echo '[{kernel, [{error_logger, {file, "test.log"}}]}].' > eunit.config
ERL_AFLAGS="-config eunit" rebar eunit
认为这是一种笨拙的方法,但它确实有效。