<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jfry (jeffrey)</title>
    <link>https://ruby-china.org/jfry</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>找小伙伴一起开发 Ruby 增量代码覆盖率工具</title>
      <description>&lt;h2 id="简介"&gt;简介&lt;/h2&gt;
&lt;p&gt;该项目的初衷主要是为了方便在开发中看到自己的代码自测程度，对于遗漏的点好及时发现和自测&lt;/p&gt;

&lt;p&gt;项目目前已经实现了一些基本的功能了，先看一个例子：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;incrcov develop HEAD

+----------------+-----------+-------------+---------------+---------------+--------------+
| Path           | Method    | Total Lines | Covered Lines | Coverage Rate | Missed Lines |
+----------------+-----------+-------------+---------------+---------------+--------------+
| app/demo2.rb:6 | say_world | 2           | 1             | 50.0%         | 7            |
+----------------+-----------+-------------+---------------+---------------+--------------+

Overall incremental &lt;span class="nb"&gt;test &lt;/span&gt;coverage: 50.0%
Number of updated methods: 1
Number of low &lt;span class="nb"&gt;test &lt;/span&gt;coverage&lt;span class="o"&gt;(&lt;/span&gt;&amp;lt;90%&lt;span class="o"&gt;)&lt;/span&gt; methods: 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面的例子表示当前分支和 develop 分支相比，app/demo2.rb 第 6 行的 say_world 方法发生了变化，该方法总共两行被覆盖了一行，覆盖率为 50%&lt;/p&gt;
&lt;h2 id="功能"&gt;功能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;支持汇报两个 Git Commit 之间修改的代码的覆盖情况&lt;/li&gt;
&lt;li&gt;支持不同格式的输出，可以在控制台查看，在 GitLab 或者 GitHub 的 PR 中查看&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;项目目前基本可用，但是还有很多待完善和改进的地方，找感兴趣的小伙伴一起来开发~&lt;/p&gt;

&lt;p&gt;项目地址： &lt;a href="https://github.com/toaco/incrcov" rel="nofollow" target="_blank"&gt;https://github.com/toaco/incrcov&lt;/a&gt;&lt;/p&gt;
&lt;h5 id="第一次更新: 2019年08月31日15:19:47"&gt;第一次更新：2019 年 08 月 31 日 15:19:47&lt;/h5&gt;
&lt;p&gt;感谢 &lt;a href="/gaotongfei" class="user-mention" title="@gaotongfei"&gt;&lt;i&gt;@&lt;/i&gt;gaotongfei&lt;/a&gt; 推荐的 undercover，了解了下 undercover 后发现 incrcov 里面的实现和 undercover 如出一辙。但是使用起来有一些差异，当前差异如下：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;依赖和侵入性

&lt;ul&gt;
&lt;li&gt;undercover 依赖于 SimpleCov 以及 LcovFormatter，incrcov 只依赖于 SimpleCov&lt;/li&gt;
&lt;li&gt;使用 undercover 需要修改现有代码，设置和安装 Lcovformatter；incrcov 不需要，无侵入&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;报告类型的不同

&lt;ul&gt;
&lt;li&gt;undercover 展示没有覆盖的代码；incrcov 更多的是提供汇总信息，不会展示代码，只会提供行号的信息&lt;/li&gt;
&lt;li&gt;incrcov 报告覆盖率，undercover 不报告&lt;/li&gt;
&lt;li&gt;incrcov 支持覆盖率阈值设置，只会输出覆盖率低于该阈值的代码&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;报告格式不同

&lt;ul&gt;
&lt;li&gt;undercover 的输出格式单一；incrcov 针对提供了多种格式的报告，有专门的用于控制台展示的，也有可以直接粘贴在 Github、GitLab 评论中的 Markdown 格式的报告&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;undercover 更加成熟稳定。&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>jfry</author>
      <pubDate>Sat, 31 Aug 2019 13:33:16 +0800</pubDate>
      <link>https://ruby-china.org/topics/39004</link>
      <guid>https://ruby-china.org/topics/39004</guid>
    </item>
  </channel>
</rss>
