Je me cogne la tête contre le mur ici en essayant de comprendre pourquoi IntelliJ / Android rapporte "Suite de tests vide". J'ai un petit projet avec deux modules IntelliJ ("Projets" dans Eclipse). Le module de test unitaire a son propre AndroidManifest.xml, que j'ai collé en bas. J'essaye d'exécuter un ActivityUnitTestCase
, puisque les tests Context
dépendront de -object.
Le nom de package du module principal est nilzor.myapp
. Le nom pacakge du module de test estnilzor.myapp.tests
Pourquoi le testeur ne détecte-t-il pas la testBlah()
méthode -méthode comme 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>
Et voici ma classe de test :;
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);
}
}
J'ai lu les principes de base des tests , le document de test d'activité et essayé de suivre ce blog de test Hello world , même si c'est pour Eclipse. Je n'arrive pas à faire en sorte que le testeur trouve et exécute mon test. Qu'est-ce que je fais mal?
Certaines des questions sur lesquelles je ne suis toujours pas sûr sont:
- Ai-je besoin d'une annotation au-dessus de la méthode de test unitaire?
- Dois-je préfixer la méthode avec "test", ou est-ce uniquement pour les tests JUnit?
- Puis-je avoir des tests dans des sous-packages de
nilzor.myapp.tests
?
Mais la question principale de cet article est pourquoi le testeur ne détecte-t-il pas mon test ?
@Test
marqueur au-dessus du test.
cmd+shift+t
raccourci qui créera automatiquement une classe de test à l'emplacement correct du package qui correspond à la classe que vous modifiez actuellement.