1

テストに Robolectric を使用する Android プロジェクトがあります。build.gradle の関連部分は次のようになります。

apply plugin: 'robolectric'

robolectric {
    include '**/*Test.class'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')

    androidTestCompile 'org.hamcrest:hamcrest-integration:1.1'
    androidTestCompile 'org.hamcrest:hamcrest-core:1.1'
    androidTestCompile 'org.hamcrest:hamcrest-library:1.1'
    androidTestCompile('junit:junit:4.12') {
        exclude module: 'hamcrest-core'
    }
    androidTestCompile('org.robolectric:robolectric:2.4') {
        exclude module: 'classworlds'
        exclude module: 'commons-logging'
        exclude module: 'httpclient'
        exclude module: 'maven-artifact'
        exclude module: 'maven-artifact-manager'
        exclude module: 'maven-error-diagnostics'
        exclude module: 'maven-model'
        exclude module: 'maven-project'
        exclude module: 'maven-settings'
        exclude module: 'plexus-container-default'
        exclude module: 'plexus-interpolation'
        exclude module: 'plexus-utils'
        exclude module: 'wagon-file'
        exclude module: 'wagon-http-lightweight'
        exclude module: 'wagon-provider-api'
    }
    androidTestCompile 'com.android.support:support-v4:21.0.3'
}

すべての Robolectric テストは にありsrc/androidTest/java/my/package/*Test.javaます。これはすべて完璧に機能しています。通常の Gradle ビルドの一部として、または IntelliJ の JUnit GUI を介してテストを実行できます。

ここで、Robolectric を使用できず、実際の Android デバイスで実行する必要があるいくつかのテストを追加する必要があります。Robolectric テストで既にバリアントを使用する必要がある場合、androidTestこのプロジェクトにインストルメント化されたテストを追加し、Robolectric テストをデバイスなしで実行できるようにするにはどうすればよいですか?

4

1 に答える 1

1

これは非常に時代遅れの設定です。

  1. 最新の安定したAndroid gradle プラグインを使用します。

    buildscript {
      dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
      }
    }
    
  2. Robolectric gradleプラグインを削除します。

    //apply plugin: 'robolectric'
    
    //robolectric {
    //    include '**/*Test.class'
    //}
    
  3. テストソースをtestフォルダに移動

  4. androidTestCompileに変更testCompile

でテストを実行できるようになりまし./gradlew test<Flavour>DebugUnitTestた。androidTestまた、インストルメンタル テストをフォルダに追加できます。

Robolectric3.1バージョンにアップグレードすることも検討してください

于 2016-06-16T13:38:07.010 に答える