2016-07-20 6 views
2

Есть ли способ запуска тестов или конфигураций устройств Android из командной строки? В настоящее время «тест градуировки» запускает все тесты в артефакте теста «Тесты единиц измерения», но они терпят неудачу с ошибкой: «java.lang.IllegalStateException: никаких контрольно-измерительных приборов не должно быть зарегистрировано!Конфигурация тестирования студийного модуля Android

Я ищу способ запустить ту же конфигурацию, которая запускается при щелчке правой кнопкой мыши по com.foo.android (тест) и нажатии «Запуск тестов в« com.foo.android »в Android Studio? Я ищу, чтобы переместить это Дженкинсу. Или можете использовать конфигурацию, которую я создал вручную в AS.

Благодаря

[EDIT] Если я отделить чистые модульные тесты JUnit и Instrumentation испытания в их соответствующие артефакты, то я потеряю возможность запускать тесты UI самостоятельно, есть способ обойти эту проблему ? У меня есть конфигурация, которая запускает только UITest-пакет, но не знает, как запустить эту конфигурацию из командной строки.

+1

ли вы инструментальными тесты (например, Тесты эспрессо) или просто чистые тесты Java junit? –

+0

Смешивание обоих, они также не все выделены, некоторые из них находятся в одних и тех же классах. – CroatianBlackhawk

+0

Вы настроили 'testInstrumentationRunner' в своем build.gradle? –

ответ

0

Смотрите, если это поможет запуска андроида модульных тестов из командной строки:

adb shell am instrument -w <package>/android.test.InstrumentationTestRunner 

Running Все тестовые случаи в пакете к югу:

adb shell am instrument -w <package>.<sub package>/android.test.InstrumentationTestRunner 

Запуск единого тестового примера из тестового класса:

adb shell am instrument -w -e class <project>.<test class>#testCase 
<package>/android.test.InstrumentationTestRunner 
+0

, это будет работать для пакетов, однако есть ли способ запуска конфигурации, а не для указания каждого пакета отдельно? Если нет, я мог бы просто создать пакет специально для unitTests, InstrumentationTests и UITests. – CroatianBlackhawk

0

Лучший способ, который я нашел, - это сделать все мои UITests в пакете го, когда я только хочу, чтобы запустить юнит-тесты запуска:

adb shell am instrument -w -e notPackage com.foo.android.UITest com.foo.android.test/android.support.test.runner.AndroidJUnitRunner 

запустить все тесты запуска:

adb shell am instrument -w com.foo.android.test/android.support.test.runner.AndroidJUnitRunner 

только для UITest:

adb shell am instrument -w -e package com.foo.android.UITest com.foo.android.test/android.support.test.runner.AndroidJUnitRunner