2012-02-01
Androidでのテストとカバレッジ測定メモ
先日、TkMixiViewer の某機能*1の実装時にTDDが必要になり、JUnit 環境を用意した。
テストプロジェクトを作ってテスト対象クラスの1メソッドに対してテストケースを作るだけ。
参考URL
そこでこの機会に全体的にテストケースを(いまさらながら)整備したくなった。
やみくもに作っても終わりが見えずモチベーションが保てないので、テストの指標値の1つである C0 カバレッジを計る環境を構築した。
最近の Android SDK には emma というカバレッジ測定用のライブラリ(かな?)が含まれているので環境構築自体は比較的簡単だと思う。
emma は djUnit のような Eclipse に統合された環境ではなくコマンドラインから実行するのが残念だけど、emulator で実行する都合などを考えると仕方ない気もする。
これまで Eclipse のみで開発してきたので ant 用設定ファイル(build.xml等)がないなど、いくつかめんどくさいポイントがあったけど、一度環境を整えてしまえばあとはバッチでも流すだけ。Jenkins さんも導入したほうがいいのかなー。Ubuntu に立てようかな。
生成された coverage.html はこんな感じ↓
これを 100% に近づけるべくテストケースを整備していこう。
# TkMixiViewerのパーサーなのに MZ3Parser.java だったりする
以下、メモ。
OSなど
参考URL
- testing - How to use EMMA code coverage in android - Stack Overflow
- Coverage report for Android unit tests | pboos.ch
- Testing In Other IDEs - Android Test and Evaluation Club (ATEC)
- Jenkins で Android UnitTest を自動実行してカバレッジを採取する。 | まったり覚書
主な手順
- 対象プロジェクト本体(TkMixiViewer)およびライブラリプロジェクト(QuickActionLibなど)のbuild.xml生成
> cd TkMixiViewer > android update project --path .
- テストプロジェクト(TkMixiViewerTest)のbuild.xml生成
> cd TkMixiViewerTest > android update test-project -m d:\Src\workspace\TkMixiViewer -p .
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_25
- 対象プロジェクト本体のビルド、インストール
> cd TkMixiViewer > ant emma debug install
- emulator起動
- テストプロジェクトのビルド、インストール、テスト
> cd TkMixiViewerTest > ant emma debug install test
- 上記手順で coverage/coverage.html が生成される。
うちの環境特有の問題・はまりポイント
- ant がないので導入。
- JDK がないので導入。
- 文字コードがSJISなので ant 失敗。全ソースコードを UTF-8 に変換。
- coverage.html が ISO-8859-1 なので UTF-8 に変更。
- report.html.out.encoding がプロパティファイル等に書いても認識されないので ${android-sdk}\tools\ant\build.xml に記述。かっこわるい。
<emma>
+ <property name="report.html.out.encoding" value="UTF-8" />
<report sourcepath="${tested.project.absolute.dir}/${source.dir}"
ハチコウ商事
クリック: 2回
クリック: 2回
トラックバック - http://d.hatena.ne.jp/halts/20120201/p1
リンク元
- 524 http://ray.sakura.ne.jp/aki/
- 34 http://kanzenmap.nomaki.jp/
- 19 http://www.monsterbeatsbydresg.com
- 17 http://search.mobile.yahoo.co.jp/mobilesite/list?p=素人エロ動画&b=31&trans=0&nsite=
- 16 http://royalwineandspirits.com
- 16 http://usy.jp/twitter/index.php?携帯電話からTwitter
- 10 http://penguin-kingdom.com/?p=141
- 10 http://www.takke.jp/
- 9 http://t.co/z1nRrWo1
- 9 http://www.google.co.jp/url?sa=t&rct=j&q=辞郎からのSVL問題集の作り方&source=web&cd=3&ved=0CDMQFjAC&url=http://d.hatena.ne.jp/halts/20100214/1266131148&ei=iUkxT


