Ich habe Schwierigkeiten, die neue Android-Build-System zu Tests zu überzeugen. Beim Ausführen des Tests gibt es den Fehler Unable to resolve activity for: Intent
, der in anderen Fragen diskutiert wurde, aber es gibt nichts darin, das mein Problem behoben hat.Android/Gradle Espresso Test nicht starten Aktivität
Ich habe es abgestreift, so dass mein Testpaket überhaupt nicht auf mein Hauptpaket (com.wealdtech.app
) angewiesen ist, aber immer noch das Problem hat, Aktivität zu starten.
Meine Testaktivität:
package com.wealdtech.test;
import android.app.Activity;
import android.os.Bundle;
public class TileLayoutTestActivity extends Activity
{
@Override
public void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}
}
Und meine Testklasse:
package com.wealdtech.test;
import android.test.ActivityInstrumentationTestCase2;
public class TileLayoutTest extends ActivityInstrumentationTestCase2<TileLayoutTestActivity>
{
public TileLayoutTest()
{
super(TileLayoutTestActivity.class);
}
@Override
protected void setUp() throws Exception
{
super.setUp();
setActivityInitialTouchMode(false);
}
public void testNull()
{
final TileLayoutTestActivity activity = getActivity();
activity.finish();
}
Relevante Teile build.gradle:
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
defaultConfig {
minSdkVersion 11
targetSdkVersion 19
testPackageName "com.wealdtech.test"
testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
}
}
Das vollständige Stack-Trace I erhalten ist:
java.lang.RuntimeException: Could not launch activity
at com.google.android.apps.common.testing.testrunner.GoogleInstrumentation.startActivitySync(GoogleInstrumentation.java:286)
at android.test.InstrumentationTestCase.launchActivityWithIntent(InstrumentationTestCase.java:119)
at android.test.InstrumentationTestCase.launchActivity(InstrumentationTestCase.java:97)
at android.test.ActivityInstrumentationTestCase2.getActivity(ActivityInstrumentationTestCase2.java:104)
at com.wealdtech.test.TileLayoutTest.testNull(TileLayoutTest.java:21)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner.onStart(GoogleInstrumentationTestRunner.java:167)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
Caused by: java.lang.RuntimeException: Unable to resolve activity for: Intent { act=android.intent.action.MAIN flg=0x14000000 cmp=com.wealdtech.test/.TileLayoutTestActivity }
at android.app.Instrumentation.startActivitySync(Instrumentation.java:379)
at com.google.android.apps.common.testing.testrunner.GoogleInstrumentation.access$101(GoogleInstrumentation.java:52)
at com.google.android.apps.common.testing.testrunner.GoogleInstrumentation$2.call(GoogleInstrumentation.java:268)
at com.google.android.apps.common.testing.testrunner.GoogleInstrumentation$2.call(GoogleInstrumentation.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Ich habe meine AndroidManifest.xml
nicht enthalten, weil alles, was ich lese schlägt vor, dass ich keine Absicht für TileLayoutTestActivity
hinzufügen muss, jedoch habe ich versucht, dies trotzdem zu tun und endete mit dem gleichen Ergebnis.
Ich habe auch versucht, das Gradle-Plugin von android-library
zu android
zu ändern, falls das Problem verursacht wurde, aber wieder das gleiche Ergebnis.
Ich kann keine Dokumentation in Bezug auf die Voraussetzungen für Espresso-Tests oder Tests mit dem Gradle-Build-System sehen, die ich nicht bereits behandelt habe. Irgendwelche Ideen, zu denen ich die Tätigkeit als Teil des Tests nicht beginnen kann?
Konnten Sie eine Lösung dafür finden? Das gleiche Problem in meinem Projekt. –