2016-08-17 15 views
2

最近、Android Studioの[ビルドバリアント]ビューに「ユニットテスト」のオプションが含まれていましたが、このオプションをオンにすると簡単に単純にテストクラスを選択して「実行」を押すだけで、Android Studioの基本ユニットテストができます。その後、Android Studio 2.0がリリースされたときに、それらのオプションをビルドバリアントメニューから削除したと思います。すべてのドキュメントでは、テストクラスを右クリックして 'RUN'と言うことができるはずですが、そのたびにインストゥルメントテスト用のデプロイメントターゲットを選択するよう促されます。私はここに何かを逃していますかAndroid Studio 2.1.3で基本単位テストをどのように実行しますか?Androidスタジオ2.1.3で単純なjunitテストを実行する方法

これは、私はユニットテストを実行する前に必要なていたコードが含まれている私の現在のbuild.gradleからの抜粋です:

android { 
compileSdkVersion project.COMPILE_SDK_VERSION.toInteger() 
buildToolsVersion project.BUILD_TOOLS_VERSION 

defaultConfig { 
    minSdkVersion project.SDK_MIN_VERSION_LIBRARY 
    targetSdkVersion project.COMPILE_SDK_VERSION.toInteger() 
    versionName project.VERSION_NAME 
    versionCode project.VERSION_CODE.toInteger() 


} 
lintOptions { 
    abortOnError false 
} 
buildTypes { 
    debug{ 
     versionNameSuffix = "DEBUG" 
    } 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
sourceSets { 
    androidTest { 
     setRoot('src/test') 
     java.srcDir file('src/test/java') 
     resources.srcDir file('src/test/resources') 
    } 

} 
testOptions { 
    unitTests.returnDefaultValues = true 
} 
android.testOptions.unitTests.all { 
    // Configure includes/excludes 
    include '**/*Test.class' 
    exclude '**/espresso/**/*.class' 

    // Configure max heap size of the test JVM 
    maxHeapSize = '2048m' 

    // Configure the test JVM arguments - Does not apply to Java 8 
    jvmArgs '-XX:MaxPermSize=4096m', '-XX:-UseSplitVerifier' 

    // Specify max number of processes (default is 1) 
    maxParallelForks = 4 

    // Specify max number of test classes to execute in a test process 
    // before restarting the process (default is unlimited) 
    forkEvery = 250 

    // configure whether failing tests should fail the build 
    ignoreFailures false 

    // use afterTest to listen to the test execution results 
    afterTest { descriptor, result -> 
     println "Executing test for ${descriptor.parent}: ${descriptor.name} with result: ${result.resultType}" 
    } 
} 

}

+0

"Androidスタジオ2.1.3で基本単位テストをどのように実行しますか?" - 記述したものだけを実行する(クラスを右クリックして実行を選択する)か、クラス宣言の隣のエディターでガターアイコンをクリックします。 "しかし、私がそれを行うたびに、機器テスト用のデプロイメントターゲットを選択するよう促され、それらには興味がありません" - モジュールの 'test /'ソースセット内のユニットテストですか?あなたは 'build.gradle'でファンデキなことをしましたか? – CommonsWare

+0

ああ..はい、私はやった!私は過去に何年も必要だったコードをそこに持っていました。私は関連するコードで私の質問を更新しました。問題がありますか? – JohnRock

答えて

2

あなたはsrc/test/に見てオーバーライドさandroidTestのsourceSetを持っています。したがって、Gradleはあなたのtest/コードが計測テストを表すと考えています。

sourceSetsブロック全体を削除してください。

理想的には、株式の設定に従います。androidTest/test/は、ユニットテストを保持し、計測テストを保持しています。

他にも必要な場合は、問題ありません。ただし、計測テストクラスを右クリックして[実行]を選択すると、計測テストが実行されます。したがって、androidTest/に単体テストを保持し、instrumentationTestBecauseLongDirectoryNamesAreFun/に計測器テストを保持したい場合は問題ありませんが、自分の所在地を把握する必要があります。

したがって、sourceSetsクロージャーを取り除いても、計測器テストと単体テストのどこに行きたいかを反映するように更新するかどうかはあなた次第です。

+0

もちろん。私はsourceSetsのクロージャーを削除して標準設定に行きましたが、すべて動作しています。ありがとうございました。 – JohnRock

関連する問題