如何仅导出所有常用测试功能?

时间:2015-12-10 15:12:33

标签: erlang rebar common-test

我一直在尝试导出erlang模块中的所有函数,以便在常见的测试SUITE中使用,而不是在eunit模块中使用。到目前为止,它对我没用。我正在使用rebar来运行SUITE,我遇到了这个问题(http://lists.basho.com/pipermail/rebar_lists.basho.com/2011-October/001141.html),这基本上就是我想要做的,但这个方法对我来说不起作用。

我还在rebar.config中添加了{plugins, [rebar_ct]}.,但它没有任何区别。当我正常导出函数时,我应该指出所有测试都通过,但我想避免这种情况。 任何帮助都会非常感谢。

2 个答案:

答案 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,它只能用于常见测试。不确定是否存在螺纹钢。