FragmentActivity Junit Tests
Mich Fragment
Android-Kompatibilität-Paket, mit dem android-support-v4.jar
. Aber ich kann nicht den JUnit-test auf dieser.
Mein main FragmentActivity
Klasse ist wie folgt deklariert
public class MyActivityClass extends FragmentActivity{
...............
}
Dann in meinem test-Projekt
public class MyActivityClassTest extends ActivityInstrumentationTestCase2<MyActivityClass> {
public MyActivityClassTest() {
super("com.android.myproject", MyActivityClass.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
...................
}
public void testPreconditions() {
.................
}
public void testNotNull(){
................
}
}
Aber wenn ich als Android JUnit Test
produzieren FailedToCreateTests[Runner:Junit3]
Failure Trace
java.lang.RuntimeException: Exception during suite construction
at android.test.suitebuilder.TestSuiteBuilder$FailedToCreateTests.testSuiteConstructionFailed(TestSuiteBuilder.java:239)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447)
Caused by: java.lang.reflect.InvocationTargetException
at com.android.myproject.test.MyActivityClassTest.<init>(MyActivityClassTest.java:28)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
at android.test.suitebuilder.TestMethod.instantiateTest(TestMethod.java:87)
at android.test.suitebuilder.TestMethod.createTest(TestMethod.java:73)
at android.test.suitebuilder.TestSuiteBuilder.addTest(TestSuiteBuilder.java:263)
at android.test.suitebuilder.TestSuiteBuilder.build(TestSuiteBuilder.java:185)
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:336)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3982)
at android.app.ActivityThread.access$2900(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1901)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoClassDefFoundError: com.android.myproject.MyActivityClass
... 19 more
Wenn ich geändert MyActivityClass
erweitert Activity
es geklappt hat (MyActivityClass extends Activity
)
Mir verwendet die gleichen android-support-v4.jar
in meinem test-und Ausführungsplanung
InformationsquelleAutor Labeeb Panampullan | 2011-06-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
ActivityInstrumentationTestCase2
ist kompatibel mitFragments
. Sollten Sie nur die Schritte erwähnt, die in Android-Tests: Externe Bibliotheken, die aktualisiert wurde, um den Fall abzudecken, dieandroid-support-v4.jar
zu.Dann werden Sie in der Lage, tests schreiben, wie diese:
oder was auch immer Sie brauchen, zu testen.
Was Sie veröffentlicht, ist eine Problemumgehung, die Sie führen zu einem anderen problem: wie nicht zu Schiff die tests mit der app.
Sind Sie mit Eclipse ? Ich bin mir sicher, dass es funktioniert, denn ich bin mit es.
Ja bei mir mit eclipse 🙁 Und wenn ich das gleiche Projekt als test, wird das problem für mich später?:( Ich denke, nach Abschluss meines Projekts werde ich löschen, dass zusätzliche Tests Paket-und manifest-Einträge für das testen. wird das in Ordnung sein?
Folgen Sie dtmilano.blogspot.com/2009/12/..., die ich noch traf kompilieren, beim ausführen von ant ant build ant debug-im-test-Projekt. Wie: Paket android.Unterstützung.v4.app nicht vorhanden [javac] import android.Unterstützung.v4.app.FragmentActivity;
InformationsquelleAutor Diego Torres Milano
Ich habe eine Lösung gefunden
War das problem
Es nicht finden können, die Klasse Weg, auch wenn ich finden das gleiche Glas in beide Projekte ( ich habe auch versucht, durch die Verwendung von separaten Glas für das Projekt )
Nun habe ich meine Testumgebung in die gleichen Projekt, dann hat es geklappt
In meinem
AndroidManifest.xml
Dann habe ich meine Prüfung Klasse in meinem speziellen Paket zum testen
Nun alles funktioniert 🙂
InformationsquelleAutor Labeeb Panampullan
Sehen diese Frage eine bessere Antwort:
FragmentActivity kann nicht geprüft werden, über ActivityInstrumentationTestCase2
Müssen Sie den export der Verweis auf die Kompatibilitäts-Bibliothek von Ihrem app.
InformationsquelleAutor Rupert Bates
Dies ist zu spät, aber ich löse das gleiche Problem von nur hinzufügen der android-support-v4.jar Abhängigkeit zu dem wichtigsten Projekt, und entfernen Sie es aus dem test-Projekt.
Dann, stellen Sie sicher, dass das main-Projekt ist auf die build path von dem test-Projekt.
Machen Sie dasselbe für alle anderen Bibliotheken, die Haupt-und test-Projekte teilen können.
InformationsquelleAutor ne0fhyk
Meine Vermutung ist, dass
ActivityInstrumentationTestCase2
ist nicht kompatibel mitFragments
.Sie sollten versuchen, so etwas wie Robolectric.
InformationsquelleAutor Macarse
Ich habe versucht, fast einen Tag, um mit diesem Problem umzugehen und eine Lösung gefunden, von einem anderen post
Grundsätzlich Ihre android-support-v4.jar (in meinem Fall) ist in der Anwendung verwendet werden sollten identisch sein mit dem, was Sie verwendet haben, in Ihrer Anwendung Testen. Der beste Weg, zu tun ist, entfernen Sie die gleiche jar aus dem libs-Verzeichnis von deinem test-Projekt und exportieren Sie die gleichen, von Ihrer Anwendung-Projekt. So können Sie loszuwerden, dieses Problem sicher.
InformationsquelleAutor Avijit