2015-05-22 5 views
8

Я пытаюсь выполнить тестирование в приложении для Android, и это простой тестовый учебник, что я делаю.Почему Android Studio говорит, что «тестовые события не были получены»?

import static org.junit.Assert.*; 
import org.junit.Test; 
import org.junit.runner.RunWith; 
import org.robolectric.RobolectricTestRunner; 

@RunWith(RobolectricTestRunner.class) 
public class ServerListManagerTest extends AndroidTestCase{ 

    @Test 
    public void testTrueIsTrue() throws Exception { 
    assertEquals(true, true); 
    } 
} 

каталог, как это, src\main\androidTest\java\some packages\ServerListManagerTest.java

Я попытался изменить каталог этого, а также построить конфигурацию. , но андроид-студия по-прежнему не распознает мой модульный тест, хотя сборка прошла успешно.

Это мой build.gradle в приложении,

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.kaist.se.pmpapp" 
     minSdkVersion 16 
     targetSdkVersion 21 
     versionCode 1 
     versionName "1.0" 
    } 

buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     } 
sourceSets { main { java.srcDirs = ['src/main/java', 'src/androidTest/java'] } } } 



dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.1.1' 
    androidTestCompile 'org.robolectric:robolectric:2.4' 
    androidTestCompile 'junit:junit:4.12' 
    androidTestCompile group: 'junit', name: 'junit', version: '4.12' 
    } 

Что плохого в моем коде ????

ответ

19

Предполагаю, что вы используете Android Studio версии 1.2, последнее в настоящее время.

Я не думаю, что с вашим кодом что-то не так. Согласно Jason Atwood's post, проблема, похоже, связана с кэшированием градиента предыдущих результатов и не с повторным запуском. Если вы посмотрите на «Gradle console», вы увидите, что все говорят «UP-TO-DATE». Однако его предложение о добавлении опции «-rerun-tasks» к параметрам скрипта было недостаточным для меня.

В добавление к "--rerun-tasks", мне пришлось отключить встроенную сборку и заставить ее вызвать внешний инструмент gradlew. Для этого перейдите к ...

File > Settings > Build, Execution, Deployment > Compiler 

Затем снимите флажок «Использовать встроенную сборку». Надеюсь, в будущем релиз Android Studio исправит это, и мы сможем снова включить этот вариант.

+0

Я попробовал ваше предложение, и теперь я вижу сообщение «Нет тестов, найденных для данного включает», хотя мой тестовый код такой же. –

+1

По крайней мере, это другая проблема, поэтому мы добиваемся прогресса. Я считаю, что ваш тест находится в неправильном каталоге. У меня есть мой в 'src/test/java/...' (т. Е. Параллельно с _main_). 'src/androidTest/java' для тестов, запущенных на самом устройстве. –

+3

В отчете юнит-тесты были успешными, но AS заявила, что тестовые события не были получены. Я просто отключил «Использовать сборку в процессе» в соответствии с вашими советами, и теперь я вижу результат в AS. Я волнуюсь, ненавижу подобные вещи в инструментах. Почему они не могут работать, как ожидалось, без каких-либо затрат времени на неизвестные ошибки, а затем, наконец, искать в Интернете исправление. –

Смежные вопросы