我正在使用rebar,我需要为我的Erlang eunit测试设置mnesia目录(通常可以在cmdline上执行erl -mnesia dir DIRECTORY
)。如何使用带有钢筋的特殊mnesia目录运行eunit测试?
我认为rebar.conf文件的erl_opts
部分不会有帮助,因为mnesia目录是一个模拟器参数,我不认为它可以通过erlang设置。此外,我认为这些是当rebar编译代码时的选项,而不是在运行eunit测试时。但是,即使它确实有效,它也不适用于我,因为我需要能够动态设置目录(我正在编写一个Makefile,其中不同的目标有不同的db目录)。
答案 0 :(得分:1)
使用erl -mnesia目录为Mnesia设置的实际情况DIR是为Mnesia设置环境变量,可以在应用程序资源文件中设置,作为从命令行切换,或者使用配置文件。优先顺序的顺序是命令行,配置文件和最后的应用程序资源文件。应用程序环境变量也可以使用应用程序动态设置:set_env / 3,4,这在您的情况下可能不起作用,但在许多情况下通过设置为测试获得特定(或甚至特殊的:-))设置很有用eunit fixture的设置部分中的环境变量。