OpenTween AdventCalendar 4日目 - テストコード

この記事は OpenTween AdventCalendar の4日目の記事です。

今日は OpenTween のテストコードについて書きます。とはいへ、もうここ書いてる時点で23時を回ってるのでめっちゃ急いで書きます。

OpenTweenのテストコード

まず OpenTween 初期のテスト状況ですが、TwitterクライアントのTweenのコードをコード分析にかけてみた - かずきのBlog@hatena でも指摘されてゐる通り、Tween の少なくとも Ver.1.1.0.0 までにはテストコードが一切存在してゐませんでした。これはフォーク直後の OpenTween についても同じ状況です。

v1.0.7 から NUnit を使ってテストを書き始めて、その頃実装したサムネイル関係の処理を中心に網羅しました。v1.1.5 からは個人的な嗜好から xUnit.net に移行して、現在まで引き続き書いてゐます。

コードカバレッジの遍歴

テストを書いてると言ってもどの位網羅できてゐるのかが気になりますね。そこで OpenCover を使用して各バージョン時点でのコードカバレッジを調べてみました。

結果: http://www.opentween.org/opencover/

f:id:kim_upsilon:20141205002030p:plain

Coverable lines*1 Covered lines Coverage
v1.0.7 25,226 1,072 4.2%
v1.0.8 25,249 1,075 4.2%
v1.0.9 24,798 1,168 4.7%
v1.1.0 24,761 1,296 5.2%
v1.1.1 25,059 1,327 5.2%
v1.1.2 25,089 1,276 5.0%
v1.1.3 23,941 1,408 5.8%
v1.1.4 23,957 1,410 5.8%
v1.1.5 24,136 1,459 6.0%
v1.1.6 24,140 1,443 5.9%
v1.1.7 24,027 1,411 5.8%
v1.1.8 24,086 1,578 6.5%
v1.1.9 24,175 1,620 6.7%
v1.2.0 24,002 1,834 7.6%
v1.2.1 24,040 1,851 7.6%
v1.2.2 24,143 1,852 7.6%
v1.2.3 23,903 1,852 7.7%
v1.2.4 23,985 1,922 8.0%

うーん、厳しい。最新の v1.2.4 でもやっと 8.0% といった所です。言ふまでもなく v1.0.7 より前は 0% です。

Travis CI との連携

定番の Travis CI と連携してます。

https://travis-ci.org/opentween/OpenTween

テストが壊れるやうなコミットをすると author にお叱りのメールが届きます。

まとめ

テスト書きませう。あと Travis CI マジ感謝。

*1:Windows フォームデザイナによって自動生成される *.Designer.cs の行数は除外してゐます。