跳轉到內容

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].
        |
華夏公益教科書