2013-05-09 43 views
2

我正在使用鋼筋來構建我的erlang項目,並希望將它與Emacs更緊密地集成。我發現如果我將{cover_print_enabled, true}.添加到我的鋼筋配置文件中,我會在構建輸出中獲得代碼覆蓋率。在Emacs中顯示EUnit代碼覆蓋率

但是也有一個選項cover_export_enabled它輸出某種形式的二進制文件。是否有一個emacs插件來解析該文件並對代碼進行顏色編碼以顯示測試覆蓋了哪些代碼?

我真的不喜歡不得不切換到瀏覽器來查看代碼覆蓋率。

+0

你能提供的輸出文件的一個例子 - 它由來自二進制數據,或者是文本數據用ANSI顏色?您也可以使用w3m或其他包 – 2013-05-09 08:35:02

+0

Binary在Emacs中顯示HTML,如我在帖子中所述。是的,我可以在emacs中顯示HTML,但我真的想用我的編輯環境覆蓋它 – 2013-05-09 09:55:57

回答

2

據我所知,沒有這樣的插件。

導出的封面數據文件可以被修改如下:

  1. 讀一個字節,給下一個項的長度;我們稱之爲N
  2. 以Erlang二進制術語格式讀取N字節。這可以用binary_to_term/1解碼。
  3. 如果來自步驟2的術語的格式爲{'$size',X},則讀取X字節並將其解碼爲術語。 (當該術語的二進制表示長於255個字節時,會發生這種情況。)
  4. 從步驟1繼續,直到文件結束。

Distel的Emacs Lisp實現binary_to_term被稱爲erlext-read-obj in erlext.el

我沒有看過如何處理文件中的術語,一旦解碼,但希望這足以讓某人開始。如有疑問,請閱讀lib/tools/src/cover.erl