简体   繁体   中英

Unit testing Android Apps on Eclipse + jUnit - Test run failed: Test run incomplete. Expected 1 tests, received 0

I'm trying to get some unit tests up for my Android apps. I was following the Hello, Testing tutorial from the Android dev center, but it's giving me a message that reads:

Test run failed: Test run incomplete. Expected 1 tests, received 0

Here's the code I have:

public class LoginTest extends ActivityInstrumentationTestCase2<Login> {

Activity mActivity;
EditText mLoginTxt;
EditText mPwdTxt;
Button mLoginBtn;
Button mClearBtn;

public LoginTest(String pkg, Class<Login> activityClass) {
    super("pkg_name", Login.class);
}

@Override
public void setUp() throws Exception {
    super.setUp();
}

public void testPreconditions() {

}

public void testClear() {
    assertTrue(true);
}

Here's the console output:

[2011-08-23 12:21:12 - <AppNameTest>] ------------------------------
[2011-08-23 12:21:12 - <AppNameTest>] Android Launch!
[2011-08-23 12:21:12 - <AppNameTest>] adb is running normally.
[2011-08-23 12:21:12 - <AppNameTest>] Performing android.test.InstrumentationTestRunner JUnit launch
[2011-08-23 12:21:12 - <AppNameTest>] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'AndroidHDPI'
[2011-08-23 12:21:14 - <AppNameTest>] Application already deployed. No need to reinstall.
[2011-08-23 12:21:14 - <AppNameTest>] Project dependency found, installing: <AppName>
[2011-08-23 12:21:16 - <AppNameTest>] Application already deployed. No need to reinstall.
[2011-08-23 12:21:16 - <AppNameTest>] Launching instrumentation android.test.InstrumentationTestRunner on device emulator-5554
[2011-08-23 12:21:18 - <AppNameTest>] Collecting test information
[2011-08-23 12:21:20 - <AppNameTest>] Test run failed: Test run incomplete. Expected 1 tests, received 0

And here's the LogCat output:

08-23 12:28:41.905: DEBUG/AndroidRuntime(1092): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-23 12:28:41.905: DEBUG/AndroidRuntime(1092): CheckJNI is ON
08-23 12:28:42.155: DEBUG/AndroidRuntime(1092): --- registering native functions ---
08-23 12:28:42.995: DEBUG/AndroidRuntime(1092): Shutting down VM
08-23 12:28:43.005: DEBUG/dalvikvm(1092): Debugger has detached; object registry had 1 entries
08-23 12:28:43.025: INFO/AndroidRuntime(1092): NOTE: attach of thread 'Binder Thread #3' failed
08-23 12:28:43.625: DEBUG/AndroidRuntime(1100): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-23 12:28:43.625: DEBUG/AndroidRuntime(1100): CheckJNI is ON
08-23 12:28:43.876: DEBUG/AndroidRuntime(1100): --- registering native functions ---
08-23 12:28:44.735: DEBUG/AndroidRuntime(1100): Shutting down VM
08-23 12:28:44.745: DEBUG/dalvikvm(1100): Debugger has detached; object registry had 1 entries
08-23 12:28:44.765: INFO/AndroidRuntime(1100): NOTE: attach of thread 'Binder Thread #3' failed
08-23 12:28:45.385: DEBUG/AndroidRuntime(1108): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
08-23 12:28:45.385: DEBUG/AndroidRuntime(1108): CheckJNI is ON
08-23 12:28:45.645: DEBUG/AndroidRuntime(1108): --- registering native functions ---
08-23 12:28:46.555: INFO/ActivityManager(59): Force stopping package com.PatientPoint.MCC uid=10038
08-23 12:28:46.625: INFO/ActivityManager(59): Start proc <pkg_name> for added application <pkg_name>: pid=1114 uid=10038 gids={3003}
08-23 12:28:47.196: INFO/TestRunner(1114): started: warning(junit.framework.TestSuite$1)
08-23 12:28:47.236: INFO/ActivityManager(59): Force stopping package <pkg_name> uid=10038
08-23 12:28:47.246: INFO/Process(59): Sending signal. PID: 1114 SIG: 9
08-23 12:28:47.355: DEBUG/AndroidRuntime(1108): Shutting down VM
08-23 12:28:47.375: DEBUG/jdwp(1108): Got wake-up signal, bailing out of select
08-23 12:28:47.375: DEBUG/dalvikvm(1108): Debugger has detached; object registry had 1 entries
08-23 12:28:47.415: INFO/AndroidRuntime(1108): NOTE: attach of thread 'Binder Thread #3' failed

Ok, looks like I was using the wrong constructor. I've made eclipse auto generate the code and it created this:

public LoginTest(String pkg, Class<Login> activityClass) {
    super(pkg, Login.class);
}

However, upon changing it to this:

public LoginTest() {
    super("pkg_name", Login.class);
}

it works fine. I'm not sure why, though, so if anyone can provide an explanation, I'd be happy to accept that as the answer. For everyone else encountering this error, all the online discussion around this seems to indicate that there's some error in your constructor.

i have removed the argument and now this is working try it.

public class LoginTest extends ActivityInstrumentationTestCase2<Login> {

Activity mActivity;
EditText mLoginTxt;
EditText mPwdTxt;
Button mLoginBtn;
Button mClearBtn;

public LoginTest() {
super("pkg_name", Login.class);
}

@Override
public void setUp() throws Exception {
super.setUp();
}

public void testPreconditions() {

}

public void testClear() {
assertTrue(true);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM