假设我有一个名为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.erl
从example_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。