Triumph! Android Studio 1.2 Sneaks In Full Testing Support(訳文)


文章の英語版の出所:https://www.bignerdranch.com/blog/triumph-android-studio-1-2-sneaks-in-full-testing-support/私はそのサポートを要求しています.私たちは時々アンドロイドテストの状態を監視し、テストがアンドロイド開発を十分に統合できるのを待っています.素晴らしいことに、この日がやっと来ました.私は1月にsetting up unit testing in Android Studioを書いたことがあります.もしあなたがこの文章を十分にしっかり読んでいたら、その設定がどんなに退屈でうんざりしているかを覚えておくべきです.私たちは開発の中で最高のテストツールを知っています.私が前の文章で説明した措置ですが、このような間違いは一時的なものです.今日、これらの設定手順はすべて全く必要ありません.これはアンドロイドツール開発チーム、安定版AS 1のおかげです.2第3部の設定やカスタムRobolectricは必要ありません.2月にリリースされたAS 1.1の中でこれらの基本的な設定を紹介したことがあって、それは関連する試験の配置を必要としてやっとユニットのテストができて、先週、安定版AS 1.2のリリース後、この構成はテストする必要はありません.それはすでにASに統合されていますが、NerdsはRanchでAS 1に統合されています.2発表公告でこの機能を一言も言わなかったことに驚きましたが、このユニットテストはAS 1にあります.2はサポートされています.今日はASでユニットテストを確立するための非常に簡単な設定手順を説明します.私は1月にその複雑な設定を説明してから簡略化に移行する方法を説明します.
最新メソッドの設定
このunit testing how-toはAS 1に対してです.1リリース版の記事対AS 1.2は何の役にも立たない.私たちがしなければならない設定は正しいBuild Variant Test Artifact:を選択することです.そうすれば、テスト依存ライブラリを追加してテストを書くことができます.buiild.gradleファイルは次のようになります.
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    ...

    testCompile 'junit:junit:4.12'
    testCompile('org.robolectric:robolectric:3.0-rc2') {
        exclude group: 'commons-logging', module: 'commons-logging'
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    }
}

Robolectric 3.0
注意深い読者は、私たちが依存しているRobolectricは3.0バージョンで、私たちも前にRobolectricを使ったことがあることに気づくかもしれません.4バージョンのテストASの新機能は問題ありませんが、カスタムRobolectricTestRunner(my prior postを参照)を使用する必要があります.Robolectricは2.4バージョンから3.0バージョンにアップグレードする方法について良い指導を提供します.Robolectric 3が追加されました.0 1つの便利さは、特にコマンドラインとASを拡張するために設計されたRobolectricTestRunnerGradle、RobolectricGradleTestRunnerとも呼ばれ、テストクラスを注釈することができます.
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, emulateSdk = 21)
public class MyActivityTest {

    @Before
    public void setUp() throws Exception {
        // setup
    }

    @Test
    public void testSomething() throws Exception {
        // test
    }
}

最終的には、ASでGradle Testでテストを実行することができます.すべてのステップはこれらです.すぐにASでテストの合格と失敗のフィードバックを得ることができます.
以前の方法から
my previous postを読んだことがある場合は、次のコードを削除する必要があります.
プロジェクトレベルのbuild.gradleでのJC&Kプラグインの削除
classpath 'com.github.jcandksolutions.gradle:android-unit-test:2.1.1'

ASプラグインのリストとモジュールレベルのbuildで、gradleからEven Tatarka’sユニットテストプラグインを削除します.
apply plugin: 'android-unit-test'

モジュールレベルのbuildからgradleは対AS 0を除去する.8.9の補修:
afterEvaluate {
    tasks.findByName("assembleDebug").dependsOn("testDebugClasses")
}

Robolectricにアップグレードすると0カスタムRobolectricTestRunnerを削除し、RobolectricGradleTestRunnerを使用します.
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, emulateSdk = 21)
public class MyActivityTest { ... }

これらはすべて簡単ではありませんか?はい!Josh Skeen’s demoをダウンロードして実行して見て、あなたのアンドロイドAppsの品質を評価するために素晴らしいテストを書く時です.この記事は、Robolectricと新しいテストサポートをどのように書くかを示しています.
警告:イベントのテスト中に承認されません
訂正5.15:いくつかの評論家は、「テストを繰り返し実行すると、彼らはいくつかの問題に直面し、ここで「テストイベントが受け入れられない」というエラーを回避する方法についても話しています.私たちがテストを実行するたびに、Gradleにすべてのテストを繰り返し実行させる必要があります.これは、Gradleが繰り返し実行しない個別のサブタスクを識別することによって、私たちがテストを実行することを最適化するためです.初期実行:
... :app:compileDebugUnitTestJava
:app:compileDebugUnitTestSources
:app:mockableAndroidJar UP-TO-DATE
:app:assembleDebugUnitTest
...

繰り返し実行:
....
:app:compileDebugUnitTestJava UP-TO-DATE
:app:compileDebugUnitTestSources UP-TO-DATE
:app:mockableAndroidJar UP-TO-DATE
:app:assembleDebugUnitTest UP-TO-DATE
...

残念なことに、ASはすべてのタスクを実行する必要があります.そうしないと、私たちのテストに反応しません.そのため、 の警告を受けます.私たちは実行構成を変更してGradleにすべてのタスクを繰り返し実行させることができます.最新のAndroidアプリの開発を学びたいですか.Android bootcampとAdvanced Android bootcampをクリックすると、Ranchの位置や自分のオフィスで学ぶことができます.