Question Comment générer automatiquement un rapport de test Android en HTML


Je souhaite générer automatiquement un rapport de test unitaire au format HTML pour une application Android sur le serveur d'intégration continue Hudson.

Par conséquent, j'essaie d'abord d'exécuter des cas de test et de rassembler des fichiers de résultats de test au format xml. Ensuite, j'utilise la tâche JUnitReport pour transformer les fichiers de résultats XML au format HTML.

Je lance des cas de test via le framework d'instrumentation Android. Cependant, il ne fournit que des informations de sortie détaillées plutôt que le format XML standard de JUnit. Je ne sais pas comment générer un rapport de test d'unité HTML sans fichiers de résultats XML JUnit.

Si j'exécute des scénarios de test à l'aide d'Eclipse, il peut exporter les résultats dans des fichiers XML avec les informations consommées dans le temps par scénario de test. Ces fichiers XML peuvent être transformés en HTML par JUnitReport Task correctement. Par conséquent, il semble possible de collecter le résultat du test avec les informations consommées dans le temps.

Existe-t-il un moyen d'obtenir automatiquement le fichier de résultats XML standard de JUnit après avoir exécuté des scénarios de test sur le cadre d'instrumentation Android?


13
2018-02-01 17:58


origine


Réponses:


Nous avons eu un problème similaire dans notre société. Nous avons vérifié toutes les solutions open source disponibles et aucune n'était vraiment parfaite. Nous avons donc développé et simplement ouvert une solution pour cela. Je ne dis toujours pas un "ultime" mais certainement beaucoup mieux que athena ou le reporter python ou toute analyse post-test. Vous pouvez le trouver ici: http://code.google.com/p/the-missing-android-xml-junit-test-runner/

Il offre:

  • fichier XML séparé pour chaque package impliqué
  • Les fichiers XML sont générés sur le périphérique (doivent être récupérés après le test)
  • le timing des tests est entièrement pris en charge
  • nous avons une trace de pile complète signalée en cas d'échec / erreur

Au lieu d'analyser le code source Java (comme dans athena) ou d'analyser la sortie (le script python), nous avons étendu Android Runner. Nous avons donc tous les avantages d'utiliser des options de ligne de commande standard pour la sélection des tests, l'activation de la couverture, etc., décrites ici: http://developer.android.com/guide/developing/testing/testing_otheride.html#RunTestsCommand.

Nous avons réussi à exécuter le code en utilisant des règles de test standard avec une couverture analysée par emma, toutes bien rapportées dans Jenkins.


9
2018-04-07 00:08



Je viens de voir que Dan Watling de DroidDudes travaille sur un outil nommé Athena qui semble être similaire à ce que vous voulez.

Vous pouvez le trouver ici: http://droiddudes.com/


4
2017-07-06 11:37



Je ne pense pas que ce soit possible, vous devez donc créer un utilitaire qui convertit la sortie du programme de test Android en fichiers XML au format JUnit.

Cependant, vous ne pourrez pas obtenir la valeur de temps par test, car le programme de test Android ne semble pas produire ces informations.


1
2018-02-01 18:18



Je pense que le athena l'approche est la plus pénible car vous pouvez simplement installer le fichier athena jar sur votre système et ajouter la cible ant

<property name="junit.dir" value="${basedir}/junit-results"/>
<property name="athena.jar" value="/home/cruise/athena/athena-1.1.2.jar"/>

<target name="prepare" description="Setup needed directories">
  <mkdir dir="${junit.dir}"/>
</target>

<!-- This target will compile/install tested project as well as test project to ensure tests are executed against latest code -->
<target name="athena" depends="prepare, -install-tested-project, install" description="Run tests and convert result to xml using athena">
  <exec executable="java" os="Linux" failonerror="true">
    <arg value="-cp"/>
    <arg value="${athena.jar}"/>
    <arg value="com.synaptik.athena.Athena"/>
    <arg value="${basedir}"/>
    <arg value="${junit.dir}/TEST-result.xml"/>
  </exec>
</target>

À partir de la ligne de commande, il suffit simplement de courir fourmi athenaet vous avez le résultat du test en XML. Ce sera aussi la cible que votre script CruiseControl devrait déclencher.


0
2017-09-22 12:55