2015-02-07 5 views
5

Я применил следующие инструкции: https://code.google.com/p/android-test-kit/wiki/AndroidJUnitRunnerUserGuide для установки тестов JUnit4.AndroidJunit4.class бегун в Android Studio не вызывает методы @Test

В частности, я выполняю шаги, чтобы использовать Junit4 с ActivityInstrumentationTestCase2, однако при запуске тестов в Android Studio аннотированные методы @Test не выполняются. Если я префикс методов с «тестом», это работает, но это не то, что я ожидаю для тестов JUnit 4.

Неужели кто-нибудь столкнулся с этой проблемой?

С уважением,

+0

Вы добавили аннотацию '@RunWith (AndroidJUnit4.class) в класс? См. Https://github.com/commonsguy/cw-omnibus/blob/v6.4/Testing/JUnit4/src/androidTest/java/com/commonsware/android/abf/test/DemoActivityTest.java – CommonsWare

+0

Благодарим за отзыв , Да, у меня есть эта аннотация в соответствии с вики, и у меня также есть бегун в моей команде graddle «testInstrumentationRunner» android.support.test.runner.AndroidJUnitRunner ». Unfortunatley все еще не подбирает методы. (Если мой класс не расширяет ActivityInstrumentationTestCase2, тогда он работает, но мне нужно расширить его, чтобы получить доступ к Android SDK api) – user3521637

ответ

2

я обнаружил, что пришлось добавить один тестовый метод как это:

public void test() {} 

Тогда все мои реальные тесты снабженными @Test

+0

Спасибо ericharlow, я обнаружил, что добавление нулевого теста, похожее на это, по-видимому, заставило его работать (следовательно, я +1 ваш ответ), однако я не был доволен этим, и с тех пор я решил переместить AS 1.2.2 с Android Plugin Version: 1.2.3, и это больше не нужно. – user3521637

6

Там нет необходимости расширять ActivityInstrumentationTestCase2 больше. Если вам нужен доступ к Activity, в библиотеках поддержки тестирования существует ActivityTestRule. Вместо расширения ActivityInstrumentationTestCase2 теперь вы можете сделать:

@RunWith(AndroidJUnit4.class) 
public final class ActivityTest { 

    @Rule 
    public final ActivityTestRule<MainActivity> activityTestRule = 
     new ActivityTestRule<>(MainActivity.class); 

    @Test 
    public void useActivityInTest() { 
     Activity activity = activityTestRule.getActivity(); 
    } 
} 
+0

Спасибо, Люк, я перешел на новую тестовую поддержку в AS (модульные тесты и тесты инструментальных инструментов), и в процессе перешел на использование правил и все было хорошо. – user3521637

+0

Подтверждено последними примерами, выпущенными и представленными здесь (https://plus.google.com/u/0/+AndroidDevelopers/posts/NPagF6bpHsv) – lechuckcaptain

+0

Спасибо, Лука, это работает. –

2

Fixed, если это указано в файле приложение/build.gradle тест-бегун:

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

defaultConfig { 
    applicationId "com.domain.appname" 
    minSdkVersion 15 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 
0

я столкнулся с этой ошибкой при попытке запустить отдельный метод испытания в Android Studio (щелкнув правой кнопкой мыши и выбрав из контекстного меню), а не весь класс.

Запуск всего класса заставлял тест работать как ожидалось.

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