2013-01-09 33 views
0

命令擴展:如何接收活動論點ActivityInstrumentationTestCase2

adb shell am instrument -e class com.vishal.nirma.test.MyActivity#MyFunction com.vishal.nirma.test/android.test.InstrumentationTestRunner -e myvar myvalue 

現在,

protected void setUp() throws Exception { 
     getActivity(); 
     super.setUp(); 

// here i want to receive arguments, which are passed in command line (ex. myvar). 
     // how to receive arguments here? 
} 

我使用 「ActivityInstrumentationTestCase2」。

我試着在setup()中的波紋管代碼,但它不適合我。

Bundle extras = getActivity().getIntent().getExtras(); 


     if (extras != null) 
     { 

      Log.v(TAG,"Parameters Received !!!"); 

      if (extras.containsKey ("myvar")) 
      { 
      String str_myvar = extras.getString ("myvar"); 

      } else { 

      } 
     } 
     else 
     { 
      Log.v(TAG,"No parameters ???"); 
     } 

它總是給我「無參數???」。

感謝您的幫助提前... :-)

+0

嘗試使用 Bundle extras = getIntent()。getExtras(); – arnp

+0

getIntent()不適用於ActivityInstrumentationTestCase2。 –

回答

0

如果只是這麼容易!您通過命令行傳入的參數被儀器測試運行器所使用,而不是儀器測試案例。這意味着要抓住他們,你需要抓住跑步者。

實際上,您可以將Instrumentation轉換爲您正在使用的測試運行器,一旦您執行了稍微不安全的轉換,則可以調用getBundle()獲取傳遞給它的參數。一旦你有了,你可以得到你想要的值。