2011-08-23 8 views
5

Próbuję uzyskać niektóre testy jednostkowe dla moich aplikacji na Androida. Podążałem za tutorialem Hello, Testing z centrum programistycznego Androida, ale otrzymuję komunikat o następującej treści:Testowanie urządzenia w aplikacjach Android w środowisku Eclipse + jUnit - uruchomienie testu nie powiodło się: uruchomienie testu jest niepełne. Oczekiwano 1 testu, otrzymałem 0

Nieudany test: uruchomienie testowe jest niepełne. Oczekiwane 1 testy, otrzymał 0

Oto kod mam:

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

Oto wyjście konsoli:

[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 

A oto wyjście LogCat:

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 

Odpowiedz

9

OK, wygląda na to, że użyłem niewłaściwego konstruktora. Zrobiłem zaćmienie automatycznego generowania kodu i stworzył w ten sposób:

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

Jednak po zmianie go do tego:

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

to działa dobrze. Nie jestem pewien, dlaczego, więc jeśli ktoś może udzielić wyjaśnień, chętnie zaakceptuję to jako odpowiedź. Dla wszystkich osób, które spotkały się z tym błędem, cała dyskusja online w tej sprawie wydaje się wskazywać, że wystąpił błąd w twoim konstruktorze.

+0

Dzięki, pomógł .. – FireAndIce

1

Usunąłem argument, a teraz to działa, spróbuj.

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); 
} 
Powiązane problemy