我一直在尝试导出erlang模块中的所有函数,以便在常见的测试SUITE中使用,而不是在eunit模块中使用。到目前为止,它对我没用。我正在使用rebar来运行SUITE,我遇到了这个问题(http://lists.basho.com/pipermail/rebar_lists.basho.com/2011-October/001141.html),这基本上就是我想要做的,但这个方法对我来说不起作用。
我还在rebar.config中添加了{plugins, [rebar_ct]}.
,但它没有任何区别。当我正常导出函数时,我应该指出所有测试都通过,但我想避免这种情况。
任何帮助都会非常感谢。
答案 0 :(得分:7)
如果将模块中的所有函数添加到模块中,编译器将导致模块中的所有函数:
-compile(export_all).
或者你可以根据defs来做,比如:
-ifdef(EXPORTALL).
-compile(export_all).
-endif.
如果您的钢筋配置{d, 'EXPORTALL', true}
设置中有erl_opts
,那么只会导出所有内容,例如类似的东西:
{erl_opts, [
{d, 'EXPORTALL', true}
]}.
如果不起作用,请确保您的钢筋配置中没有erl_opts
两次。
答案 1 :(得分:4)
使用rebar3,您可以在配置文件中定义额外选项,以便进行常见测试的编译:
{ct_compile_opts, []}.
她可以添加export_all,它只能用于常见测试。不确定是否存在螺纹钢。