我正在尝试编写简单的 erlang 应用程序,使用 rebar 作为 eunit 测试运行器。有没有办法将烦人的日志消息重定向到文件中,而不以编程方式进行?没有钢筋我可以说erl -kernel error_logger "{file,\"test.log\"}"
这样做,但我怎么能用钢筋呢?
概括问题,有没有办法在运行测试时使用钢筋传递一些应用程序环境设置?
我正在尝试编写简单的 erlang 应用程序,使用 rebar 作为 eunit 测试运行器。有没有办法将烦人的日志消息重定向到文件中,而不以编程方式进行?没有钢筋我可以说erl -kernel error_logger "{file,\"test.log\"}"
这样做,但我怎么能用钢筋呢?
概括问题,有没有办法在运行测试时使用钢筋传递一些应用程序环境设置?
回答我自己的问题。正如这里所讨论的,有一种方法可以使用 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
认为这是笨拙的方法,但它确实有效。