2012-02-28 2 views
1

Я могу запустить мой Android приложений тесты Junit/Robotium из командной строки, как это:пользовательских параметров при запуске андроида тест из командной строки

adb shell am instrument -w com.myapp.client.test/android.test.InstrumentationTestRunner 

Однако, я хочу, чтобы каким-то образом включить пользовательский параметр, который позволяет мне указать должен ли тест проходить в режиме «Портрет» или «пейзаж».

Как я могу:

  1. указать, что пользовательский параметр в команде из командной строки?

  2. Как получить доступ к значению этого настраиваемого параметра в коде Java?

Благодаря

ответ

0

Я сделал решение халтуру к этому. Не похоже, что здесь есть чистое решение.

Мой взлом - это использовать «маленькие», «средние» и «большие» атрибуты, которые можно прикрепить к испытаниям.

@MediumTest 
    public void testPortraitTest1() throws Exception{ 
     this.MetaDataTest(Solo.PORTRAIT);   
    } 

    @LargeTest 
    public void testLanscapeTest1() throws Exception{ 
     this.MetaDataTest(Solo.LANDSCAPE);   
    } 

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

adb shell am instrument -w -e size medium com.me.client.test/android.test.InstrumentationTestRunner 
adb shell am instrument -w -e size large com.me.client.test/android.test.InstrumentationTestRunner 

позора на Google, чтобы не делать это проще.

2

Вы можете расширить Android Instrumentation полоз и переопределенияOnCreate() метод, чтобы получить пользовательский параметр из командной строки. Используйте свой персонализированный инструментальный бегун при выполнении тестовых примеров.

public class CustomInstrumentationRunner extends android.test.InstrumentationTestRunner{ 

@Override 
public void onCreate(Bundle arguments) { 
    //process you parameters here.  
super.onCreate(arguments); 
} 

@Override 
public void onStart() { 
    try { 
     logger = CustomLogger.GetLogger(); 
    } catch (Exception e) { 
     throw new RuntimeException(e); 
    } 
    super.onStart(); 
} 
0

То, как я сделал это:

Перед тем, как запустить тест, я сохранить текстовый файл в SDCard \

При запуске теста, наладке, я анализирую каждую строку из текстового файла и извлечь ключ/значение

arg1 = valueX арг2 = valueY

2

Вы можете указать пользовательский параметр, используя

adb shell am insrument -e <NAME> <VALUE> <package/runner> 

Вы можете достичь его значение, используя пакет, который доступен, если переопределить onCreate метод InstrumentationTestRunner.

например:

public void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 

value = (String) savedInstanceState.get("name"); 

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