<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ひげろぐ &#187; rcov</title>
	<atom:link href="http://brass.to/blog/tag/rcov/feed" rel="self" type="application/rss+xml" />
	<link>http://brass.to/blog</link>
	<description>技術者として仕事人としての思うところや覚え書きやらです</description>
	<lastBuildDate>Fri, 30 Jul 2010 10:07:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>カバレッジの厳密さにどこまでこだわるか</title>
		<link>http://brass.to/blog/coverage.html</link>
		<comments>http://brass.to/blog/coverage.html#comments</comments>
		<pubDate>Wed, 05 Mar 2008 11:36:10 +0000</pubDate>
		<dc:creator>akahige</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[rcov]]></category>
		<category><![CDATA[テスト]]></category>

		<guid isPermaLink="false">http://brass.to/blog/coverage.html</guid>
		<description><![CDATA[rcovは行カバレッジのツールなので、次のようなコードでは問題なくカバレッジを判定できる。
@itemがnilであるケースがテストされていなければ2行目のカバレッジは赤だ。
if @item.nil?
  return render(:nothing => true, :status => '404 Not Found')
end
しかし次のようなコードでは if の結果がどちらに分岐してもカバーしているとみなされる。
@itemがnilであるケースがテストされていなくてもカバレッジはパスする。
return render(:nothing => true, :status => '404 Not Found') if @item.nil?
ということなのでif修飾子を使うのはやめた方がよい。おわり。
.
.
.
というのはウソで、カバレッジの厳密さにこだわってコードの書き方を変える必要はないと思う。
カバレッジは所詮目安なんだから。
あと100%である必要もないし、100%であることを強制するのはナンセンス。
中身の薄いテストでも100%にするだけならできるわけなので。
でもまあTDDで開発してたら自然と100%になる気はするなぁ。
100%にする必要はないと言ったけど、100%だったらやっぱり気持ちいいな。
だからTDDは気持ちいい。
うむ、なんだかきれいにまとまった気がする。（ほんとか？）
参考
コード品質を追求する: カバレッジ・レポートに騙されないために
]]></description>
			<content:encoded><![CDATA[<p>rcovは行カバレッジのツールなので、次のようなコードでは問題なくカバレッジを判定できる。<br />
@itemがnilであるケースがテストされていなければ2行目のカバレッジは赤だ。</p>
<pre><code>if @item.nil?
  return render(:nothing => true, :status => '404 Not Found')
end</code></pre>
<p>しかし次のようなコードでは if の結果がどちらに分岐してもカバーしているとみなされる。<br />
@itemがnilであるケースがテストされていなくてもカバレッジはパスする。</p>
<pre><code>return render(:nothing => true, :status => '404 Not Found') if @item.nil?</code></pre>
<p>ということなのでif修飾子を使うのはやめた方がよい。おわり。</p>
<p>.<br />
.<br />
.</p>
<p>というのはウソで、カバレッジの厳密さにこだわってコードの書き方を変える必要はないと思う。<br />
カバレッジは所詮目安なんだから。</p>
<p>あと100%である必要もないし、100%であることを強制するのはナンセンス。<br />
中身の薄いテストでも100%にするだけならできるわけなので。</p>
<p>でもまあTDDで開発してたら自然と100%になる気はするなぁ。<br />
100%にする必要はないと言ったけど、100%だったらやっぱり気持ちいいな。<br />
だからTDDは気持ちいい。</p>
<p>うむ、なんだかきれいにまとまった気がする。（ほんとか？）</p>
<h4>参考</h4>
<p><a href="http://www.ibm.com/developerworks/jp/java/library/j-cq01316/" target="_blank">コード品質を追求する: カバレッジ・レポートに騙されないために</a></p>
]]></content:encoded>
			<wfw:commentRss>http://brass.to/blog/coverage.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSpec on Railsとrcovを組み合わせて使う</title>
		<link>http://brass.to/blog/rspec_on_rails_with_rcov.html</link>
		<comments>http://brass.to/blog/rspec_on_rails_with_rcov.html#comments</comments>
		<pubDate>Tue, 04 Mar 2008 05:16:22 +0000</pubDate>
		<dc:creator>akahige</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rcov]]></category>
		<category><![CDATA[rspec]]></category>
		<category><![CDATA[テスト]]></category>

		<guid isPermaLink="false">http://brass.to/blog/rspec_on_rails_with_rcov.html</guid>
		<description><![CDATA[rcovでRSpecのテストカバレッジも出すことができる。
ぐーぐる先生の力を借りて過去の歴史を紐解くと先人たちの苦労の跡が忍ばれるのだが、そのおかげか今はRakeのコマンド一発で連携が可能。
rake spec:rcov
すばらしい。
spec/rcov.opts
rake spec:rcovした時にrcovに与えるオプションはspec.optsで指定できる。
デフォルトの内容は以下。
--exclude "spec/*,gems/*"
--rails 
他人の作ったライブラリなどカバレッジテストの対象外にしたいものは&#8211;excludeに追加するとよろしい。
近頃のこと
コカ・コーラのカナダドライ ジンジャーエール エクストラが辛くてうまい。
でもすぐ消えそうな予感もする。
]]></description>
			<content:encoded><![CDATA[<p>rcovでRSpecのテストカバレッジも出すことができる。<br />
ぐーぐる先生の力を借りて過去の歴史を紐解くと先人たちの苦労の跡が忍ばれるのだが、そのおかげか今はRakeのコマンド一発で連携が可能。</p>
<pre><code>rake spec:rcov</code></pre>
<p>すばらしい。</p>
<h4>spec/rcov.opts</h4>
<p>rake spec:rcovした時にrcovに与えるオプションはspec.optsで指定できる。</p>
<p>デフォルトの内容は以下。</p>
<pre><code>--exclude "spec/*,gems/*"
--rails </code></pre>
<p>他人の作ったライブラリなどカバレッジテストの対象外にしたいものは&#8211;excludeに追加するとよろしい。</p>
<h5>近頃のこと</h5>
<p><a href="http://www.cocacola.co.jp/products/lineup/canadadry04.html" target="_blank">コカ・コーラのカナダドライ ジンジャーエール エクストラ</a>が辛くてうまい。<br />
でもすぐ消えそうな予感もする。</p>
]]></content:encoded>
			<wfw:commentRss>http://brass.to/blog/rspec_on_rails_with_rcov.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rcovでRailsのカバレッジテスト</title>
		<link>http://brass.to/blog/rcov.html</link>
		<comments>http://brass.to/blog/rcov.html#comments</comments>
		<pubDate>Sat, 26 Jan 2008 00:08:13 +0000</pubDate>
		<dc:creator>akahige</dc:creator>
				<category><![CDATA[未分類]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[rcov]]></category>
		<category><![CDATA[テスト]]></category>

		<guid isPermaLink="false">http://brass.to/blog/rcov.html</guid>
		<description><![CDATA[つくるぶガイドブログ: Rails + rcov でテストカバレッジを調べるを見てrcovを試してみたら面白かった。
前半コードを交えていろいろ書いてあるけど、普段からテストを普通に書いてるなら「rcov でテストカバレッジを調べる」の節から読んだらいいと思う。
以下のコマンドでrcovをgemからインストールして
sudo gem install rcov

以下のコマンドで実行。
rcov -x /usr/local/lib/ruby --rails test/**/*_test.rb

「-x /usr/local/lib/ruby」で自分が作ったのではないgem等のテストを無視（パス指定が大雑把かもしれん）、「&#8211;rails」でRailsの余計なファイルを無視してくれるということだ。
これでさくっとテストのカバレッジを示したHTMLが出来上がる。
実に簡単で、見て面白い。
アプリを作ってるときにテスト書くのをサボると後でテストを書くというのはけっこうモチベーション的にしんどいものがあるが、これを使いながらだったら書けそうだ。
ちなみにカバレッジによってテストされてないコード箇所は分かるが、適切なテストが書かれているかが保証されるわけではないし、そもそも必要なコードが書かれているかということも教えてくれないので過信は禁物。
カバレッジが100%でもバグはあり得る。
とはいえ、テストの品質と作成効率を上げるのにかなり役立つツールであることは間違いない。
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tkrb.jp/guide/2008/01/rails_rcov.html" target="_blank">つくるぶガイドブログ: Rails + rcov でテストカバレッジを調べる</a>を見てrcovを試してみたら面白かった。</p>
<p>前半コードを交えていろいろ書いてあるけど、普段からテストを普通に書いてるなら「rcov でテストカバレッジを調べる」の節から読んだらいいと思う。</p>
<p>以下のコマンドでrcovをgemからインストールして</p>
<pre><code>sudo gem install rcov
</code></pre>
<p>以下のコマンドで実行。</p>
<pre><code>rcov -x /usr/local/lib/ruby --rails test/**/*_test.rb
</code></pre>
<p>「-x /usr/local/lib/ruby」で自分が作ったのではないgem等のテストを無視（パス指定が大雑把かもしれん）、「&#8211;rails」でRailsの余計なファイルを無視してくれるということだ。</p>
<p>これでさくっとテストのカバレッジを示したHTMLが出来上がる。<br />
実に簡単で、見て面白い。</p>
<p>アプリを作ってるときにテスト書くのをサボると後でテストを書くというのはけっこうモチベーション的にしんどいものがあるが、これを使いながらだったら書けそうだ。</p>
<p>ちなみにカバレッジによってテストされてないコード箇所は分かるが、適切なテストが書かれているかが保証されるわけではないし、そもそも必要なコードが書かれているかということも教えてくれないので過信は禁物。<br />
カバレッジが100%でもバグはあり得る。</p>
<p>とはいえ、テストの品質と作成効率を上げるのにかなり役立つツールであることは間違いない。</p>
]]></content:encoded>
			<wfw:commentRss>http://brass.to/blog/rcov.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
