【问题标题】:Displaying EUnit code coverage in Emacs在 Emacs 中显示 EUnit 代码覆盖率
【发布时间】:2013-05-03 12:13:40
【问题描述】:

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

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

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

【问题讨论】:

  • 您能否提供一个输出文件的示例 - 它是由二进制数据组成,还是由 ANSI 颜色的文本数据组成?您还可以使用 w3m 或其他包在 Emacs 中显示 HTML
  • 二进制,正如我在帖子中所说。是的,我可以在 emacs 中显示 HTML,但我真的想用我的编辑环境覆盖它

标签: emacs erlang rebar eunit


【解决方案1】:

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

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

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

Distel 有一个 binary_to_term 的 Emacs Lisp 实现,称为 erlext-read-obj in erlext.el

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

【讨论】:

    【解决方案2】:

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

    狮子座

    【讨论】:

      猜你喜欢
      • 2017-03-05
      • 2012-01-18
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 2020-08-13
      • 2021-03-01
      • 2022-06-19
      • 1970-01-01
      相关资源
      最近更新 更多