我正在使用espresso对我的android应用进行单元测试。当我按下按钮时,是否可以从真实设备运行测试?
未连接到android studio的设备可能会启动LoginTest.class吗?
@RunWith(AndroidJUnit4.class)
@LargeTest
public class LoginTest {
public static final String STRING_TO_BE_TYPED = "Andrei test";
@Rule
public ActivityTestRule<Login> mActivityRule = new ActivityTestRule<>(
Login.class);
@Test
public void t1_LoginClass_Pushing_login_button_100times() {
// Type text and then press the button.
for (int y = 0; y < 100; y++) {
onView(withId(R.id.btn_signup)).perform(click());
}
}
}
答案 0 :(得分:0)
绝对不是。但是,您可以在真实设备中运行测试
答案 1 :(得分:0)
AndroidJUnit4
测试运行器由工具控制...并且它安装了两个完全不同的软件包(应用程序和测试应用程序-测试应用程序无法直接启动,因为它是Mainfest.xml
没有任何Activity
,因为它是必需的)。您可以使用adb
来启动它(IDE不会做其他事情),但是不能从应该被启动的应用程序包中启动...日志输出也表明了这一点;它显示为Connecting to ...
1/30 19:14:09: Launching Test Suite
$ adb push ./mobile/build/outputs/apk/debug/someapp-uni-debug.apk /data/local/tmp/com.acme.someapp.debug
$ adb shell pm install -t -r "/data/local/tmp/com.acme.someapp.debug"
Success
APK installed in 2 s 752 ms
$ adb push ./mobile/build/outputs/apk/androidTest/debug/mobile-debug-androidTest.apk /data/local/tmp/com.acme.someapp.debug.test
$ adb shell pm install -t -r "/data/local/tmp/com.acme.someapp.debug.test"
Success
APK installed in 1 s 743 ms
Running tests
$ adb shell am instrument -w -r -e debug true -e class 'com.acme.someapp.ApplicationTestSuite' com.acme.someapp.debug.test/androidx.test.runner.AndroidJUnitRunner
Waiting for application to come online: com.acme.someapp.debug.test | com.acme.someapp.debug
Connecting to com.acme.someapp.debug
Waiting for application to start debug server
请参阅https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests