Ich stoße hier mit dem Kopf gegen die Wand und versuche herauszufinden, warum IntelliJ / Android "Leere Testsuite" meldet. Ich habe ein kleines Projekt mit zwei IntelliJ-Modulen ("Projekte" in Eclipse). Das Unit-Test-Modul hat eine eigene AndroidManifest.xml, die ich unten eingefügt habe. Ich versuche ein auszuführen ActivityUnitTestCase
, da die Tests vom Context
-Objekt abhängen .
Der Paketname des Hauptmoduls lautet nilzor.myapp
. Der Paketname des Testmoduls lautetnilzor.myapp.tests
Warum erkennt der Testläufer die testBlah()
Methode nicht als Test?
<?xml version="1.0" encoding="utf-8"?>
<!-- package name must be unique so suffix with "tests" so package loader doesn't ignore us -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nilzor.myapp.tests"
android:versionCode="1"
android:versionName="1.0">
<!-- We add an application tag here just so that we can indicate that
this package needs to link against the android.test library,
which is needed when building test cases. -->
<application>
<uses-library android:name="android.test.runner"/>
</application>
<!--
This declares that this application uses the instrumentation test runner targeting
the package of nilzor.myapp. To run the tests use the command:
"adb shell am instrument -w nilzor.myapp.tests/android.test.InstrumentationTestRunner"
-->
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="nilzor.myapp"
android:label="Tests for nilzor.myapp"/>
</manifest>
Und hier ist meine Testklasse:;
package nilzor.myapp.tests;
public class NilzorSomeTest<T extends Activity> extends ActivityUnitTestCase<T>{
public NilzorSomeTest(Class<T> activityClass){
super(activityClass);
}
@SmallTest
public void testBlah(){
assertEquals(1,1);
}
}
Ich habe die Testgrundlagen und das Dokument zum Testen von Aktivitäten gelesen und versucht, diesem Hello World-Testblog zu folgen , obwohl es für Eclipse ist. Ich kann den Testläufer nicht dazu bringen, meinen Test zu finden und auszuführen. Was mache ich falsch?
Einige der Fragen, bei denen ich mir immer noch unsicher bin, sind:
- Benötige ich eine Anmerkung über der Unit-Testmethode?
- Muss ich der Methode "test" voranstellen, oder ist das nur für JUnit-Tests?
- Kann ich Tests in Unterpaketen von haben
nilzor.myapp.tests
?
Die Hauptfrage dieses Beitrags ist jedoch, warum der Testläufer meinen Test nicht erkennt .
@Test
Marker auf den Test zu setzen.
cmd+shift+t
Verknüpfung, mit der automatisch eine Testklasse am richtigen Paketspeicherort erstellt wird, der der Klasse entspricht, die Sie gerade bearbeiten.