我正在使用 Rebar 构建我的 erlang 项目,并希望将其与 Emacs 更紧密地集成。我发现如果我将 {cover_print_enabled, true}.
添加到我的钢筋配置文件中,我会在构建输出中获得代码覆盖率。
但是,还有一个选项cover_export_enabled
,它输出某种形式的二进制文件。是否有一个 emacs 插件可以解析该文件并对我的代码进行颜色编码以显示测试覆盖了哪些代码?
我真的不喜欢必须切换到浏览器才能查看代码覆盖率。
最佳答案
据我所知,没有这样的插件。
导出的封面数据文件读取方式如下:
- 读取一个字节,给出下一项的长度;我们称之为
N
。 - 读取 Erlang 二进制术语格式的
N
字节。可以使用 binary_to_term/1 进行解码. - 如果第 2 步中的术语的形式为
{'$size',X}
,则读取X
字节并解码为术语。 (当该术语的二进制表示形式超过 255 个字节时,就会发生这种情况。) - 从第 1 步继续,直到文件末尾。
Distel 有一个名为 erlext-read-obj in erlext.el 的 binary_to_term
的 Emacs Lisp 实现。 .
我还没有研究如何处理文件中的术语,一旦解码,但希望这足以让人们开始。阅读 lib/tools/src/cover.erl如果有疑问。
关于emacs - 在 Emacs 中显示 EUnit 代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16454669/