Impossible d'exécuter le cas de test JUnit 4 dans le projet Eclipse Android

Je suis nouveau sur Java et j'essaie d'exécuter un test d'unité sur une classe que j'écris. Eclipse (3.5) a créé la classe de test d'unité pour moi et a ajouté Junit4 à mon chemin de classe.

Ma classe:

  • Android: activité d'appel d'une autre application
  • Lire le contenu d'une URL dans Android
  • AlertDialog à choix multiples avec adaptateur personnalisé
  • Android: Trouver des endroits à proximité avec Google Places API
  • Android: LocationManager vs Google Play Services
  • Couleur de l'effet de bord scrollview de lollipop Android
  • public class DistanceUtil { public static double metersToMiles( double meters ) { return 0; } public static double metersToKilometers( double meters ) { return 0; } } 

    Mon test unitaire:

     public class DistanceUtilTest { @Test public final void testMetersToMiles() { fail("Not yet implemented"); // TODO } @Test public final void testMetersToKilometers() { fail("Not yet implemented"); // TODO } } 

    Lorsque je clique droit sur le test de l'unité et sélectionnez l'exécution en tant que Junit Test, j'obtiens ce qui suit:

     # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (classFileParser.cpp:3075), pid=5564, tid=4940 # Error: ShouldNotReachHere() # # JRE version: 6.0_17-b04 # Java VM: Java HotSpot(TM) Client VM (14.3-b01 mixed mode windows-x86 ) # An error report file with more information is saved as: # C:\Users\Giles Roadnight\workspaceAndroid\Cycloid\hs_err_pid5564.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # 

    Quelqu'un a-t-il une idée de la façon de réparer ça?

    Merci

  • Android Studio: Comment supprimer / filtrer les variantes de construction pour le débogage par défaut et libérer buildTypes et ne conserver que ceux utilisant des types de construction personnalisés?
  • Android: java.lang.IllegalAccessException lors de la tentative d'utilisation d'une classe "Application" personnalisée
  • Ne devrait-il pas y avoir une option pour les Fragments de conserver les événements de clic dans leur hiérarchie de vue?
  • Couleur de l'arrière-plan Android LinearLayout Selector
  • Ajout d'une boîte de dialogue Progress dans une vue web
  • PhoneGap 3 plugin: exec () appel au plugin inconnu "..."
  • 2 Solutions collect form web for “Impossible d'exécuter le cas de test JUnit 4 dans le projet Eclipse Android”

    Après avoir recherché Google pour une réponse, cela semble avoir quelque chose à voir avec les outils de développement Android.

    Voici les étapes prises à partir de ce fil de commentaires :

    1. Cliquez avec le bouton droit sur le projet -> exécuter -> exécuter la configuration
    2. Sélectionnez votre projet Junit
    3. Accédez à l'onglet classpath
    4. Supprimer l'entrée du cadre Android
    5. Sélectionnez les entrées bootstrap
    6. Cliquez sur avancé
    7. Sélectionnez Ajouter une bibliothèque
    8. D'accord
    9. Choisir "JRE System Library"
    10. Prochain
    11. terminer
    12. Vous devez également ajouter la bibliothèque JUnit, suivez les étapes 5 à 11 et sélectionnez "Junit" au lieu de "JRE System Library"
    13. Vous pouvez maintenant exécuter votre projet en tant que Junit.

    Étant donné que les instructions d'Alex Spurling ne sont plus valables pour Eclipse Juno et le dernier SDK d'Android, il peut être utile de donner une autre alternative:

    1. Créez un projet de bibliothèque Java ordinaire distinct qui abrite tout le code qui n'a pas de dépendances sur la plate-forme Android.
    2. Ecrire les tests JUnit normalement.
    3. Incluez ce projet dans votre projet Android comme référence de bibliothèque.
    4. Utilisez SLF4J ou une autre bibliothèque de haut niveau pour la journalisation.

    C'est un peu gênant pour les petits projets, mais OTOH permet d'appliquer la modularité et la séparation des interfaces.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.