Erlang代码调试工具之-cover

2009-03-09
[部分译自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~~

M-OSCAR | Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com