我们说我有一个名为的模块 example.erl
在本单元中,我使用以下构造进行调试:
%%% Switch debugging output on/off:
%-define(DBG(Str, Args), ok).
-define(DBG(Str, Args), io:format(Str, Args)).
Run Code Online (Sandbox Code Playgroud)
它帮助我将各种调试信息输出到Erlang shell:
?DBG("Function fun1 starting... ~n", [])
Run Code Online (Sandbox Code Playgroud)
但是,如果我打电话example.erl
从example_tests
使用example:test()
,这个输出信息不会出现.
如何在EUnit测试期间将其显示出来?
UPD:我找到了一些相关信息,但我仍然不知道如何解决这个问题.
shi*_*ino 19
如您提到的页面中所述,您可以使用debugMsg或debugFmt.
?debugMsg("Function fun1 starting...")
Run Code Online (Sandbox Code Playgroud)
要么
?debugFmt("Function fun1 starting...", [])
Run Code Online (Sandbox Code Playgroud)
确保在模块文件中包含eunit的头文件.
-include_lib("eunit/include/eunit.hrl").
Run Code Online (Sandbox Code Playgroud)
如果要在分段中禁用调试宏,请在编译模块中定义NODEBUG.