假设我有一个名为example.erl的模块

在此模块中,我使用以下构造进行调试:

%%% Switch debugging output on/off:
%-define(DBG(Str, Args), ok).
-define(DBG(Str, Args), io:format(Str, Args)).


它可以帮助我将各种调试信息输出到Erlang shell中:

?DBG("Function fun1 starting... ~n", [])


但是,如果我用example.erlexample_tests调用example:test(),则不会出现此输出信息。

如何在EUnit测试期间使其可见?

UPD:我找到了some related info,但是我仍然不知道如何解决该问题。

最佳答案

如您提到的页面中所述,可以使用debugMsg或debugFmt。

?debugMsg("Function fun1 starting...")


要么

?debugFmt("Function fun1 starting...", [])


确保在模块文件中包含eunit的头文件。

-include_lib("eunit/include/eunit.hrl").


例如,如果要在登台中禁用调试宏,请在编译模块中定义NODEBUG。

08-06 12:37