[部分译自Programming Erlang]
有时当我们测试代码的时候,如果能看到哪几行代码执行了多少次,哪些代码完全没有被执行过,对查错找BUG很有帮助,通常根本没被执行的代码可能会导致潜在的错误。在Erlang中可以使用cover模块来统计分析每行代码的运行次数,例如有一个test模块:
1> cover:start().
{ok,<0.34.0>}
2> cover:compile(test).
{ok,test}
3> test:start(10).
[....]
4> cover:analyse_to_file(test).
{ok,”test.COVER.out”}
现在cover模块会生成一个test.COVER.out文件,它记录了test模块运行时每行代码所执行的次数,格式如下:
| -module(test).
| -export([start/1]).
| %产生随机列表来排序
| start(N) ->
01..| {A1,A2,A3}=now(),
01..| random:seed(A1,A2,A3),
01..| List=generateList([],N),
….
10..| Num=random:uniform(1000),
10..| generateList([Num|List],N-1),
….
09..| {Sub1,Sub2}=lists:split(Mid,List),
09..| Rs1=sort(Sub1),
….
当然啦这个代码是我自己写的,没有BUG,也没有哪行代码执行次数为0~~
訂閱:
張貼留言 (Atom)
0 意見