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
The error occurs because the JUnit library has not been configured for the project, but can be resolved using the following steps. 1. Right click on the Java project and select Build Path > Configure Build Path. 2.
You use an assert method, provided by JUnit or another assert framework, to check an expected result versus the actual result. These method calls are typically called asserts or assert statements.
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);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With