我正在使用rebar,并且我需要为我的Erlang eunit测试设置mnesia目录(通常可以通过在cmdline执行erl -mnesia dir DIRECTORY来完成)。如何使用带有rebar的特殊mnesia目录运行eunit测试?
我不认为rebar.conf文件的erl_opts部分会有帮助,因为mnesia目录是一个模拟器参数,我不认为可以通过erlang来设置它。此外,我认为这些是rebar编译代码时的选项,而不是运行eunit测试时的选项。然而,即使它工作了,它也不会对我起作用,因为我需要能够动态地设置目录(我正在编写一个Makefile,其中不同的目标具有不同的db目录)。
发布于 2013-06-07 15:59:59
使用erl -mnesia dir DIR为Mnesia实际设置的是为Mnesia设置环境变量,这可以在应用程序资源文件中设置,可以像您所做的那样从命令行作为开关进行设置,也可以使用配置文件。优先级顺序是命令行、配置文件,最后是应用程序资源文件。应用程序环境变量也可以使用application: set _env/3,4动态设置,这在您的情况下可能不起作用,但在许多情况下,通过在eunit fixture的设置部分设置环境变量来为测试获得特定的(甚至特殊的:-)设置是有用的。
https://stackoverflow.com/questions/16978668
复制相似问题