6
votes

Gardez une commande de dépendances spécifiques pour le studio Android

J'essaie d'exécuter des tests unitaires avec Robolectric dans Android Studio. Je suis presque là-bas - je vois:

sourceSets {
   testLocal {
      java.srcDir file('src/test/java')
      resources.srcDir file('src/test/resources')
   }
}

dependencies {
    // compatibility
    compile 'android.compatibility:android-support:v4-r13'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'

    testLocalCompile 'junit:junit:4.11'
    testLocalCompile 'org.robolectric:robolectric:2.2'
    testLocalCompile 'org.easytesting:fest-assert-core:2.0M10'
}

android {
    buildToolsVersion "17"
    compileSdkVersion 18

    productFlavors {
       testLocal{
       }
    }
}


3 Réponses :


-1
votes

7 commentaires

Je suis mince Dernier que l'écran de dépendances


Cela fait, mais pour une raison quelconque, il se présente vide pour moi et je ne pouvais pas comprendre comment l'utiliser. Avez-vous une idée de la manière de corriger la question junit dans le nouveau comme?


Nous n'avons toujours pas de solution complète mais nous bougeons


404 - C'est pourquoi vous ne postez pas seulement un lien.


Il suffit d'utiliser cette solution dans Android Studio 135.1339820 et cela fonctionne.


@zsawyer non seulement cela, mais les incendies d'Avast Haut indiquent que le site tente d'exécuter des logiciels malveillants JavaScript.


@ L0OKY Le site Web fonctionne bien et l'exécution d'une analyse Virustotal de l'URL est ouverte bien.



4
votes

Le problème semble être due à la façon dont Android Studio réécrit les fichiers .Iml. Selon Pivotal / Robolectric / Deckard-Gradle Devs:

Remarque: Android Studio réécrit agressivement votre liste de dépendances (votre fichier .IML) et subvertit la technique utilisée ci-dessus pour obtenir le SDK Android au bas de la classe de classe. Vous obtiendrez le talon redouté! Exception chaque fois que vous retournez le projet (et éventuellement plus souvent). Pour cette raison, nous recommandons actuellement Intellij; Nous espérons que cela peut être résolu à l'avenir.

Source: https://github.com/robolectric/deckard-gradle

Apparemment, vous pouvez modifier ces fichiers à la main, mais comme vous les réécriterez chaque fois que vous synchronisez le projet. Alternativement (l'état de Deckard Devs), vous pouvez utiliser Intellij Idea pour une solution plus stable.

Ceux-ci sont actuellement également une longue discussion sur le groupe Google Robolectric:

https://groups.google.com/forum/#!topic/robolectric/xsopewtdti4

Espérons que l'équipe puisse résoudre ce problème. Running Robolectric et Espresso ensemble constituerait une énorme étape pour les tests sur Android.


1 commentaires

Merci pour le partage. Comme réécrire .iml à chaque fois lorsque vous synchronisez build.gradle fichier. C'est énervant



4
votes

avec Android Studio 0.5.7 Il est possible de conserver l'ordre des dépendances grâce à la boîte de dialogue "Structure de projet" ou à la mise en place de la ligne AndroidTestCompile 'Junit: Junit: 4. +' au sommet fo Dépendances section.

Cependant, cela ne suffit pas à exécuter des tests à l'intérieur du studio Android. La nouvelle erreur est la suivante: xxx

de sorte qu'il semble que ma dépendance junit ne soit pas propagée à la course à Junit. J'essaie de le faire fonctionner davantage


3 commentaires

En regardant la classe de classe, cela finit par utiliser, je ne suis pas certain de la réorganisation des dépendances. Au lieu de cela, il semble que cela ne ressort pas presque tous. Je pense que la raison pour laquelle l'erreur est différente est dû au fait que cela ne commence même pas les tests. Il n'a donc pas eu la chance de courir dans l'exception.


La question concerne la commande de dépendance de l'interface utilisateur (avec supposant que cela influencera sur le chemin de la classe). Cependant, l'interface utilisateur les montre correctement maintenant, mais la classe n'est pas correcte. En fait, CLASSPATH est correct, sauf que cela met Android JAR sur la première place


@Eugen Martynov Maintenant que j'utilise maintenant Android Studio 0.8.0 J'ai plusieurs cas de test de la base lorsque j'exécute mon étui à tester individuellement, je fonctionne individuellement, mais si elle est exécutée à partir de la base en choisissant l'option tout ce que les cas, la même erreur que pour U Junit version 3.8 ou plus tard prévu: tellement mis à jour avec la dernière version, mais il reste le même qu'il y a une autre solution pour la solution