2010-02-27 6 views
10

J'ai vu tous les exemples sur le web et cela semble très simple. J'ai une application bare-bones qui affiche une chaîne. J'ai un projet de test Android JUnit que j'ai créé lors de la création de l'application (eclipse m'a demandé si je voulais créer une application de test).L'exécution des tests Android JUnit dans Eclipse échoue?

Quand je lance l'application de test (Run As --- Android JUnit) Je vois ce qui suit dans la console ....

[2010-02-27 00:45:03 - SimpleCalculatorTest] instrumentation Lancement android.test.InstrumentationTestRunner sur l'émulateur de périphérique-5554 [2010-02-27 00:45:12 - SimpleCalculatorTest] Test terminé

Je ne vois aucun code du test appelé. Mon testcase est une classe qui étend ActivityInstrumentationTestCase2. DDMS journal affiche: 02-27 00: 44: 58,521: WARN/TestGrouping (1275): Forfait non valide: '' n'a pas pu être trouvé ou n'a pas de tests

Toutes les idées? J'ai tout essayé ....

Répondre

10

Si vous créez une nouvelle ActivityInstrumentationTestCase2 alors vous avez besoin d'un constructeur par défaut qui pointe vers la classe que vous voulez tester.

ex:

public class TestappTest extends ActivityInstrumentationTestCase2<AppUnderTest> { 

    public TestappTest() { 
    super("my.package.app", AppUnderTest.class); 
    } 

    public void testApp() { 
     // Testcase 
    } 
} 
+4

Pour ceux qui lisent ce super constructeur est maintenant obsolète. super (AppUnderTest.class) devrait être suffisant – IcedDante

9

J'ai eu le même problème. La raison était le constructeur - il avait en quelque sorte un paramètre comme celui-ci:

public SearchActivityTest(Class<SearchActivity> activityClass) { 
    super("com.example.app", SearchActivity.class); 
} 

Mais il ne devrait pas avoir des paramètres comme celui-ci:

public SearchActivityTest() { 
    super("com.example.app", SearchActivity.class); 
} 

Il a travaillé pour moi.