Android 使用命令提示符运行带参数的插入指令的测试

Android 使用命令提示符运行带参数的插入指令的测试,android,android-testing,android-instrumentation,Android,Android Testing,Android Instrumentation,我有一个仪器测试 @RunWith(AndroidJUnit4.class) public class ExampleInstrumentedTest { @Test public void useAppContext(String groupName) { Context appContext = InstrumentationRegistry.getTargetContext(); UiDevice device=UiDevice.getInstance(ge

我有一个仪器测试

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext(String groupName) {
Context appContext = InstrumentationRegistry.getTargetContext();
        UiDevice device=UiDevice.getInstance(getInstrumentation());
...
...
  }
}
我想使用
adbshell
命令执行它。但是我必须为方法
useAppContext(String groupName)

我在使用命令

adb shell am instrument -w -r   -e debug false -e class 'com.<package_name>.ExampleInstrumentedTest' com.<package_name>.test/android.support.test.runner.AndroidJUnitRunner  
adb shell am instrument-w-r-e debug false-e class'com..ExampleInstrumentedTest'com..test/android.support.test.runner.AndroidJUnitRunner
但是如何将方法参数作为参数传递给通过命令提示符运行的命令?

Ref:

我在Android.mk中添加了:

LOCAL_JAVA_LIBRARIES := android.test.runner
和AndroidManifest.xml:

<instrumentation 
    android:name="com.example.MyTestRunner"
    android:targetPackage="com.example" />
编辑2

这听起来像是参数化的JUnit测试用例

查看简短的教程-请注意,您需要使用JUnit4,我不确定Android的测试框架是否准备好了


这就是说,JUnit4与JUnit3向后兼容,因此从理论上讲,在android测试用例运行器下使用JUnit4注释是可能的,而且有点构建路径愚蠢。

可以通过以下方式传递参数:

或者通过类似的进一步论证

-Pandroid.testInstrumentationRunnerArguments.argument1=make_test_fail
虽然可以同时运行整组测试(例如,
EspressoTest
):


请参阅。

这将是Android仪器化测试的一部分吗?
adb shell am instrument -w -e foo the_value_of_bar com.example/com.example.MyTestRunner
adb push ./app/build/outputs/apk/debug/com.<package_name>-debug.apk /data/local/tmp/com.<package_name>.debug
adb shell pm install -t -r "/data/local/tmp/com.<package_name>.debug"
adb push ./app/build/outputs/apk/androidTest/debug/com.<package_name>-debug-androidTest.apk /data/local/tmp/com.<package_name>.debug.test
adb shell pm install -t -r "/data/local/tmp/com.<package_name>.debug.test"
adb shell am instrument -w -r -e debug true -e class 'com.<package_name>.ExampleInstrumentedTest' com.<package_name>.debug.test/android.support.test.runner.AndroidJUnitRunner
Waiting for application to come online: com.<package_name>.debug.test | com.<package_name>.debug
Connecting to com.<package_name>.debug
./gradlew app:connectedAndroidTest -P android.testInstrumentationRunnerArguments.class=com.<package_name>.ExampleInstrumentedTest#someMethodToTest
-Pandroid.testInstrumentationRunnerArguments.argument1=make_test_fail
./gradlew app:connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=com.example.android.testing.blueprint.ui.espresso.EspressoTest