2013-05-09 40 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