Robolectric + Gradle Fails при инициализации теста

Я не могу выполнять тесты с Robolectric, когда я пытаюсь выполнить тесты:

./gradlew test 

Я получаю следующее исключение:

 com.Makeupalley.test.HomeRobolectricTest > initializationError FAILED java.lang.NoClassDefFoundError Caused by: java.lang.ClassNotFoundException java.lang.NoClassDefFoundError: android/app/Activity at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) . . . Caused by: java.lang.ClassNotFoundException: android.app.Activity at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 

Тест не сработает с утверждением вроде: assertTrue (true).

Это мой build.gradle:

 buildscript { repositories { mavenCentral() maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } dependencies { classpath 'com.android.tools.build:gradle:0.12.+' classpath 'org.robolectric:robolectric-gradle-plugin:0.12.+' } } ... dependencies { compile('junit:junit:4.11') { exclude module: 'hamcrest-core' } compile('org.robolectric:robolectric:2.3') { exclude module: 'classworlds' exclude module: 'commons-logging' exclude module: 'httpclient' ... } } 

Тестовый файл:

 @Config(emulateSdk = 18) @RunWith(RobolectricTestRunner.class) public class HomeRobolectricTest { private TestActivity activity; public HomeRobolectricTest(){} @Before public void setup() { activity = Robolectric.buildActivity(TestActivity.class).create().get(); } @Test public void testInstanceActivity() throws Exception { assertTrue(true); } ... } 

Кто-то может помочь мне дать мне некоторые рекомендации?

Если вам нужна дополнительная информация или весь файл build.gradle, я могу опубликовать его.

Build.gradle файл: https://gist.github.com/anonymous/d0f0bac71a0fb76f8454

благодаря

ОБНОВЛЕНИЕ – раздел Android

 android { compileSdkVersion 15 buildToolsVersion '19.1.0' defaultConfig { minSdkVersion 10 targetSdkVersion 15 versionCode 45 versionName "1.4.210" testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner" } buildTypes { release { runProguard true proguardFile 'proguard-project.txt' } debug { runProguard false testCoverageEnabled = true } } signingConfigs { } packagingOptions { exclude 'META-INF/INDEX.LIST' exclude 'META-INF/INDEX' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE' exclude 'LICENSE.txt' exclude 'META-INF/license.txt' exclude 'META-INF/notice.txt' exclude 'META-INF/ASL2.0' } sourceSets { androidTest { setRoot('src/test') } } lintOptions { checkReleaseBuilds false abortOnError false } } 

С плагином android gradle версии 1.1.0 существует поддержка модульного тестирования, поэтому вы можете использовать testCompile в файлах градиента. Включите его с настройками> gradle> experimental и обновите версию плагина gradle:

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' } } 

У меня есть следующая настройка:

Приложение / build.gradle

 dependencies { testCompile 'junit:junit:4.12' testCompile "org.mockito:mockito-core:1.9.5" testCompile "org.robolectric:robolectric:2.4" } 

С показателями Gradle ниже 2.5 он также не работал для меня. Поскольку они выпустили новую версию 2.5 несколько дней назад, я попробовал ее, и она решила проблему для меня.

Gradle / обертку / Gradle-wrapper.prooperties

 #Wed Apr 10 15:27:10 PDT 2013 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip