Les builds ne sont pas marqués comme instables lorsque le test unitaire échoue
Question
J'ai ajouté un nouveau travail sur mon serveur Hudson qui construit le projet avec un fichier makefile.
Exécuter la commande shell:
#!/bin/bash
cd $JOB_NAME
make
Mon fichier make ressemble à ceci
SDK_31 = iphonesimulator3.1
TARGET_DEV = myProject
TARGET_TEST = unitTest
all: debug
debug:
xcodebuild -sdk ${SDK_31} -target "${TARGET_DEV}" -configuration Debug
xcodebuild -sdk ${SDK_31} -target "${TARGET_TEST}" -configuration Debug
clean:
xcodebuild -alltargets clean
rm -rf build
Mais lorsque hudson construit les projets, certains tests unitaires échouent mais la construction est considérée comme réussie.
Que dois-je faire pour avoir un "projet instable"? ?
Cordialement,
La solution
Vous devez configurer Hudson pour enregistrer les résultats des tests unitaires en activant l'action post-génération "Publier le résultat du test Junit".
actions de post-construction http://img141.imageshack.us/img141/5136 /hudsonjunit.png
Mise à jour : si vous ne pouvez pas obtenir la sortie XML de JUnit, vous devriez pouvoir utiliser plug-in de recherche de texte pour modifier le statut de construction:
Ce plug-in vous permet de rechercher des mots-clés dans les fichiers que vous avez spécifiés et de les utiliser pour marquer le succès ou l'échec de la construction.
Autres conseils
J'ai trouvé ce script ruby ??pratique de Christian Hedin qui convertit la sortie des tests OCUnit (le format utilisé par Xcode) en fichiers xml JUnit (le format utilisé par Hudson).
Vous pouvez récupérer le script sur github: http://github.com/ciryon/OCUnit2JUnit
et pour une explication sur son utilisation, voici son billet de blog à ce sujet: http://blog.jayway.com/2010 / 01/31 / continuos-integration-for-xcode-projects /
En gros, vous dirigez xcodebuild dans ocunit2junit.rb avec une commande comme celle-ci:
/usr/bin/xcodebuild -target UnitTests | /usr/local/bin/ocunit2junit.rb
et il place les fichiers XML dans un dossier de rapports de test créé à la racine du dossier de votre projet. Ensuite, demandez à Hudson de copier les artefacts test-reports / *. Xml
en tant que résultats JUnit et vous êtes défini.
Cette configuration permettra à Hudson de déterminer correctement si un test unitaire a réussi ou échoué et de marquer correctement la stabilité de la construction.
Je l'utilise depuis un mois maintenant et cela fonctionne très bien. La configuration était très simple.