跳转到内容

Erlang 编程/调试和跟踪

来自维基教科书,开放世界中的开放书籍
  • 调试
    • dbg
    • 调试器
  • 跟踪
    • ttb
    • invision
    • et
  • 覆盖率
    • Cover

覆盖率

[编辑 | 编辑源代码]

覆盖率显示测试涵盖了哪些函数。示例程序: test_rotate.erl

-module(test_rotate).
-export([test/0]).

test() ->
  assert( left_rotate([a,b,c]), [b,c,a] ).

assert(X, X) -> true.

left_rotate([]) -> [];
left_rotate([H|T]) -> T ++ [H].

示例输出

33> cover:compile(test_rotate).
34> test_rotate:test().
true
35> cover:analyse_to_file(test_rotate, "cover.html", [html]).
   

cover.html 的内容显示每个子句都运行了一次,除了 left_rotate([])。每次测试程序时,每个访问过的子句的运行次数都会增加一次。Cover 示例输出文件

File generated from test_rotate.erl by COVER 2008-04-23   
at 12:49:11
*********************************************
        |  -module(test_rotate).
        |  -export([test/0]).
        |   
        |  test() ->
     1..|    assert( left_rotate([a,b,c]), [b,c,a] ).
        |  
     1..|  assert(X, X) -> true.
        |  
     0..|  left_rotate([]) -> []; 
     1..|  left_rotate([H|T]) -> T ++ [H].
        |
华夏公益教科书