0

命令 :

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 ???");
        }

它总是给我“没有参数???”。

提前感谢您的帮助... :-)

4

1 回答 1

0

要是这么容易就好了!您在命令行中传入的参数会被检测测试运行器吃掉,而不是被检测测试用例吃掉。这意味着要抓住它们,您需要抓住跑步者。

实际上,您可以将 Instrumentation 转换为您正在使用的测试运行器,一旦您执行了稍微不安全的转换,您就可以调用 getBundle() 来获取传递给它的参数。一旦你有了它,你就可以得到你想要的值。

于 2013-02-04T11:34:44.907 回答