task jacoco(type: JacocoReport, dependsOn: "testDebug") { reports { xml.enabled = true html.enabled = false xml { destination "${project.rootDir}/build/reports/jacoco/${project.name}/jacoco_report.xml" } } classDirectories = fileTree( dir: './build/intermediates/classes/debug', excludes: ['**/R.class', '**/R$*.class', '**/BuildConfig.class', ]) sourceDirectories = files('src/main/java') executionD
New Build System - Android Tools Project Siteの1.1.0-rc1のRelease Noteに以下の文が Unit testing support. Unit testing code is run on the local JVM, against a special version of android.jar that is compatible with popular mocking frameworks (e.g. Mockito). という事で早速試してみました。 セットアップ Android Studioを1.1 beta 4にする まずはAndroid Studioを1.1 Beta 4以上にします。Android Studioを1.1 Beta 4はcanary channelで配布されてます。 gradle pluginを1
最近 Jenkins 上で Android アプリのテストを実行できるようにしたので軽くメモしておきます。 Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus) 作者: 佐藤聖規,和田貴久,河村雅人,米沢弘樹,山岸啓,川口耕介出版社/メーカー: 技術評論社発売日: 2011/11/11メディア: 単行本(ソフトカバー)購入: 26人 クリック: 496回この商品を含むブログ (62件) を見る 更新履歴 2014-03-25: Android Gradle plugin 0.9.0 でテストのタスク名が変更されたことに合わせて内容を変更しました。 前提 Android アプリのビルドには Gradle を使用している (参考: Gradle Plugin User Guide - Android Tools Project Site)
Spock とは build.gradle HelloSpock 仕様(テストケース)の構造 フィールド fixture メソッド feature メソッド helper メソッド データドリブンなテスト @Unroll data pipe Stack の仕様例 例外の検証 例外とならないことの検証 タイムアウトを適用する Hamcrest matchers を使う リソースのクリーンナップを行う @Shared で共有リソースを利用する Specification に自然言語の名前をつける MOPを適用する feature の実行を制限する @Ignore @IgnoreRest @IgnoreIf @Requires @Stepwise Spock とは Java と Groovy アプリケーションのテスティングと仕様フレームワーク JUnit, jMock, RSpec, Groov
Androidの単体テスト用フレームワークRobolectricとUIテストフレームワークEspressoが使える環境をDeckard (for Gradle)というテンプレートプロジェクトを利用して簡単に作成してみたのでその時のメモ。(といってもほとんどREADMEの内容そのままだが。) 上記テンプレートプロジェクトでは最初からRobolectrci、Espressoの実行環境(及びそれぞれの試験が一つずつ)あるので、まずは、これを使って環境を作り、その後は自分の好きなように編集していくと環境構築で手間取ることはないかと思います。 実行環境前提 AndroidSDKをインストール済み。また、AndroidSDKのAPI19をインストール済み(READMEではAPI18と書いてありますが、 compileSdkVersionが19なので19が必要です) エミュレーターでAPI19のものが存
1.Robolectricとは 端末やエミュレータなしでAndroidのUnitTestを実行してくれるライブラリです。 Android SDKの標準で使えるJUnitは3.x系ですが、RobolectricではJUnit4が使えます。 本家サイト http://robolectric.org/ ActivityやSQLiteまわりのテストをエミュレータなしで実行できるのが便利です。 2.Robolectric Gradle Pluginについて 本家がIntelliJとAndroid Studio向けにGitHubで公開しているPluginです。 https://github.com/robolectric/robolectric-gradle-plugin テストの実行はコマンドラインからgradle経由で実行します。PluginといってもGUIからクラス単位やメソッド単位でRobol
Android で mockito を使う場合は、mockito と dexmaker の jar を libs フォルダに入れるだけで良いのですが、それだけだとどうも DI に失敗するパターンがあるようです。詳細までは追えていませんが、下記のパターンそれぞれに対処が必要でした(私の場合は両者の同時対処が必要でした…) パターン1 Caused by: java.lang.VerifyError: org/mockito/cglib/core/ReflectUtils at org.mockito.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:167) at org.mockito.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrat
一年前の記事で、 * 今なら正直使わない&使えない なんだけど何故かストックされるので… 理由はめんどいので特に述べない この手の情報はすぐ古くなるから、今後はメンテナンス出来るような内容で投稿したいところ 元記事 件の通りそんな環境構築してました Githubに上げてますので、とりあえず試したい方は下記でどうぞ gradleでgiter8みたいなものあるのか知らないので、giter8で作りました g8ってなに?って方はこちらをどうぞ scala触っている人にはお馴染みですので、これを気にScalaに移行してみてはいかがでしょう?w なぜこんなものを作ったか ここ一年くらいScalaヒャッハーな環境でしたが、今月(2014/05)から突然Androidアプリを引き継ぐことに…(´・ω・`)ショボーン もちろん時間が許すならScalaで書きなおして…ってのが個人的にはベストですけど… で、
今更ながら、この記事の通りに、Robolectric に対応したプロジェクトを作る手順をまとめておきます。 Robolectric の役割 Android は、標準のフレームワークにテストフレームワークも含んでいます。 JUnit3 をベースとして、モジュールのテストや画面のテストの為のフレームワークが提供されています。 一方、実行環境の制約から、Android エミュレータや端末上での実行が要求されます。テストの実行のためにエミュレータを立ち上げたり、テストの apk をインストールしたりする必要が有るため、テストそのものの実行に手間と時間がかかってしまいます。 Robolectric では、Android のフレームワークにある各種の API を JVM 上でエミュレートすることにより、テストの実行時間を短くスピーディにすることができます。 手順の概要 build.gradle の設定
Android Gradle plugin と robolectric plugin を使って groovyコードでテストAndroidGroovygradlerobolectric 用意するもの Androidプロジェクト Gradle (1.9) // 1.10 は Android Gradle Plugin が未対応 使うもの Android Gradle plugin Robolectric robolectric-plugin (修正版) groovy-base plugin (Gradle標準) robolectric-plugin の問題 現在 sonatype のmaven repositoryで公開されている robolectric-plugin 0.0.1-SNAPSHOT (com.novoda.gradle:robolectric-plugin:0.0.1-SNAP
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く