3

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

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

4

2 回答 2

9

如果您将其添加到其中,编译器将导致模块中的所有函数被导出:

-compile(export_all).

或者你可以根据 defs 来做,比如:

-ifdef(EXPORTALL).
-compile(export_all).
-endif.

{d, 'EXPORTALL', true}如果您在钢筋配置设置中有,那只会导出所有内容erl_opts,例如:

{erl_opts, [
    {d, 'EXPORTALL', true}
    ]}.

如果这不起作用,请确保您erl_opts的钢筋配置中没有两次。

于 2015-12-10T15:18:01.130 回答
5

使用 rebar3,您可以在配置文件中为通用测试的编译定义额外选项:

{ct_compile_opts, []}.

她你可以添加 export_all 仅可用于普通测试。不确定它是否适用于钢筋。

于 2015-12-10T15:36:20.327 回答