2

我正在使用 Rebar 构建我的 erlang 项目,并希望将它与 Emacs 更紧密地集成。我发现如果我添加{cover_print_enabled, true}.到我的钢筋配置文件中,我会在构建输出中获得代码覆盖率。

但是,还有一个选项cover_export_enabled可以输出某种形式的二进制文件。是否有一个 emacs 插件来解析该文件和我的代码颜色代码以显示测试所涵盖的代码?

我真的不喜欢切换到浏览器来查看代码覆盖率。

4

2 回答 2

2

据我所知,没有这样的插件。

导出的封面数据文件可以读取如下:

  1. 读取一个字节,给出下一项的长度;让我们称之为N
  2. 以 Erlang 二进制术语格式读取N字节。这可以用binary_to_term/1解码。
  3. 如果步骤 2 中的术语是 形式{'$size',X},则读取X字节并解码为术语。(当术语的二进制表示超过 255 个字节时,就会发生这种情况。)
  4. 从步骤 1 继续,直到文件结束。

binary_to_termDistel 在 erlext.el 中有一个名为erlext-read-obj的 Emacs Lisp 实现。

我还没有研究如何处理文件中的条款,一旦解码,但希望这足以让某人开始。如果有疑问,请阅读lib/tools/src/cover.erl

于 2013-05-09T11:05:57.337 回答
0

刚刚将此功能添加到rebar.el提交https://github.com/leoliu/rebar.el/commit/9ba8699ff6310721226b93341e62491ebfd0ee99

狮子座

于 2014-02-21T04:29:47.990 回答