2017-03-14 5 views
0

Je tente d'exécuter des tests unitaires à partir d'Eclipse sur du code C++. My Eclipse est la version Mars.2 (4.5.2). J'ai initialement téléchargé la version du développeur Java, mais j'ai installé des plugins C/C++. J'ai écrit une classe simple, puis un test d'unité de boost pour cette classe. Je peux compiler le code dans Eclipse et sur la ligne de commande pour obtenir un exécutable. Si je cours l'exécutable sur la ligne de commande, j'obtiens cette sortieBoost testrunner dans Eclipse ne parvient pas à générer du code XML valide

Running 1 test case...

*** No errors detected

Jusqu'ici tout va bien. Maintenant, si j'essaie de courir dans Eclipse, j'obtiens une erreur. Au début, il est apparu que mon test ne fonctionnait pas du tout. Dans l'onglet "Unité C/C++", j'ai une barre rouge sur le côté droit de l'écran, aucune information où je devrais voir des résultats de tests individuels, et un message "Erreur d'analyse XML: fin prématurée du fichier" dans un petit texte juste en dessous de la rangée d'onglets. En arrêtant dans le débogueur, j'ai pu voir que je suis victime d'un known bug. Fondamentalement, il existe une incompatibilité entre Eclipse et boost testrunner, où l'on spécifie XML et l'autre xml (cas différent) pour le format. J'ai essayé ce travail autour mentionné dans la discussion sur le bug à ce lien:

As a workaround you can add following arguments in the unittests' run configuration:

--output_format=XML --log_level=all --report_level=no --

Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.

Avec cela en place, j'ai encore des problèmes, mais le problème est différent selon que je cours avec le débogage ou non. Sans débogage, le résultat est le même que noté ci-dessus. Avec le débogage, je reçois des informations sur mon test - notant qu'il a été exécuté et passé - sur le côté gauche de l'onglet "Unité C/C++" mais la barre rouge indique toujours un échec. Le petit texte dans ce cas dit: "Erreur d'analyse XML: le contenu n'est pas autorisé dans la section de suivi."

Le bug noté ci-dessus semble avoir environ 2 ans, bien que la discussion ait une activité aussi récente que le mois dernier. Je suppose qu'il y a un autre travail autour? Il semble probable que la communauté a effectué des tests dans les deux années intermédiaires!

J'ai essayé de mettre à jour Eclipse via Aide -> Rechercher les mises à jour. Cela n'a pas amélioré ma situation. Je soupçonne que d'autres informations peuvent être utiles pour aider, mais je ne suis pas sûr de ce qu'il faut fournir. Je vais regarder les commentaires et mettre à jour si/où je peux.

Répondre

0

À contrecoeur, j'ai effectué une mise à niveau vers la version Neon.2 d'Eclipse. Le bogue sous-jacent est toujours présent, comme décrit dans ma question, mais le work-around noté fonctionne dans cette version. La copie d'en bas de la question est complet:

As a workaround you can add following arguments in the unittests' run configuration:

--output_format=XML --log_level=all --report_level=no --

Eclipse's test runner appends it's arguments to these. Arguments after -- are passed on to your test script and ignored by Boost.Test.

aurait été bien si cela a fonctionné dans Mars et depuis la mise à niveau est un peu embêtant - en particulier avec le soutien pour les langages de développement multiples - mais au moins je peux déplacer sur. Probablement aurait dû mettre à niveau à un moment donné dans tous les cas.