Bir android proje için etkinliklerimi test etmek için JUnit'i kurmaya çalışıyorum.Android JUnit test ClassNotFoundException
Android Projesi (
Bunları web sitelerinden adımları uyguladıktan (Birkaç birim testleri eklemek istiyorum neden olan, sol hala birkaç hata vardır) bir AVD ve bir cihaz hem Tamam çalışır onlar az ya da çok aynı, ama hala sadece benim proje olarak aynı çalışma alanını kullanarak bir test projesi oluşturduk ve oluşturulanhttp://mobile.tutsplus.com/tutorials/android/android-sdk-junit-testing/
http://developer.android.com/tools/testing/testing_eclipse.html
her şeyi doğru) yaptığından emin benim ilk olmak için hepsini kontrol test durumu. Testi çalıştırmayı denediğimde aşağıdakileri elde ettim:
[2012-12-09 19:42:56 - AssassinTest] Android Lansmanı!
[2012-12-09 19:42:56 - AssassinTest] adb normal çalışıyor.
[2012-12-09 19:42:56 - AssassinTest] android.test.InstrumentationTestRunner JUnit'in gerçekleştirilmesi
[2012-12-09 19:42:56 - AssassinTest] Otomatik Hedef Modu: Tercih edilen AVD 'Google_Level10' emülatör 'emulator-5554' üzerinde kullanılabilir '
[2012-12-09 19:42:56 - AssassinTest]' emulator-5554 'cihazına AssassinTest.apk yükleniyor'
:42:57 - AssassinTest ] AssassinTest.apk ...
yükleniyor [2012-12-09 19:42:59 - AssassinTest] Başarı!
[2012-12-09 19:42:59 - AssassinTest] Proje bağımlılığı bulundu, yüklendi: Assassin
[2012-12-09 19:43:01 - Assassin] Uygulama zaten dağıtıldı. Yeniden yüklemeye gerek yok.
[2012/12/9 19:43:01 - AssassinTest] cihaz enstrümantasyon android.test.InstrumentationTestRunner başlatma emülatörü-5554
[2012/12/9 19:43:01 - AssassinTest] Toplama test bilgileri
[ 2012/12/09 19:43:04 - AssassinTest] test çalışması başarısız oldu: Enstrümantasyon çalışması G logCat ne olsun dolayı burada 'Java.Lang.ClassNotFoundException'
Ve etmektir başarısız oldu:
12-09 19:43:02.929: E/dalvikvm(1255): Unable to resolve Ludes/assassi/test/InGameActivityTest; annotation class 19
12-09 19:43:02.929: D/AndroidRuntime(1255): Shutting down VM
12-09 19:43:02.929: W/dalvikvm(1255): threadid=1: thread exiting with uncaught exception (group=0x40015560)
12-09 19:43:02.961: E/AndroidRuntime(1255): FATAL EXCEPTION: main
12-09 19:43:02.961: E/AndroidRuntime(1255): java.lang.NoClassDefFoundError: org.junit.Test
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.reflect.Method.getDeclaredAnnotations(Native Method)
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.reflect.Method.getDeclaredAnnotations(Method.java:262)
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.reflect.AccessibleObject.getAnnotations(AccessibleObject.java:188)
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.reflect.AccessibleObject.getAnnotation(AccessibleObject.java:196)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.suitebuilder.TestMethod.getAnnotation(TestMethod.java:60)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:39)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.suitebuilder.annotation.HasMethodAnnotation.apply(HasMethodAnnotation.java:30)
12-09 19:43:02.961: E/AndroidRuntime(1255): at com.android.internal.util.Predicates$OrPredicate.apply(Predicates.java:106)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:42)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.suitebuilder.annotation.HasAnnotation.apply(HasAnnotation.java:31)
12-09 19:43:02.961: E/AndroidRuntime(1255): at com.android.internal.util.Predicates$NotPredicate.apply(Predicates.java:122)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.suitebuilder.TestSuiteBuilder.satisfiesAllPredicates(TestSuiteBuilder.java:254)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.suitebuilder.TestSuiteBuilder.build(TestSuiteBuilder.java:184)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:373)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3246)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.app.ActivityThread.access$2200(ActivityThread.java:117)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.os.Handler.dispatchMessage(Handler.java:99)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.os.Looper.loop(Looper.java:130)
12-09 19:43:02.961: E/AndroidRuntime(1255): at android.app.ActivityThread.main(ActivityThread.java:3683)
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.reflect.Method.invokeNative(Native Method)
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.reflect.Method.invoke(Method.java:507)
12-09 19:43:02.961: E/AndroidRuntime(1255): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-09 19:43:02.961: E/AndroidRuntime(1255): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-09 19:43:02.961: E/AndroidRuntime(1255): at dalvik.system.NativeStart.main(Native Method)
12-09 19:43:02.961: E/AndroidRuntime(1255): Caused by: java.lang.ClassNotFoundException: org.junit.Test in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/system/framework/android.test.runner.jar:/data/app/udes.assassin.test-1.apk:/data/app/udes.assassin-2.apk]
12-09 19:43:02.961: E/AndroidRuntime(1255): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
12-09 19:43:02.961: E/AndroidRuntime(1255): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
12-09 19:43:02.961: E/AndroidRuntime(1255): ... 25 more
Birkaç forumda arama yaparken bunun bir neden olabileceğini okudum. Kötü bildirim dosyası, ama benimki
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="udes.assassin.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="udes.assassin" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>
Ve nihayet sorunun ne görmüyorum, bu (şimdiye kadar) benim tek JUnit sınıfta kod
package udes.assassin.test;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import udes.assassin.InGameActivity;
import android.test.ActivityInstrumentationTestCase2;
public class InGameActivityTest
extends ActivityInstrumentationTestCase2<InGameActivity> {
public InGameActivityTest() {
super("udes.assassin", InGameActivity.class);
}
public InGameActivityTest(Class<InGameActivity> activityClass) {
super(activityClass);
}
@Before
protected void setUp() throws Exception {
super.setUp();
}
@Test
public void testSetItemPosition() {
fail("Not yet implemented");
}
}
size