J'ai une suite de tests App Engine qui sont appelés en utilisant nez. Lorsque je les exécute à partir d'un terminal, chaque test se termine avec succès et tous les rapports, comme couverture, sont générés.Est-il possible d'exécuter des tests GAE dans Hudson?
Cependant, si je tente d'appeler la même commande d'Hudson, je reçois l'échec de la couverture suivante:
nose.failure.Failure.runTest (from Failure)
Parent module 'coverage' not loaded
-------------------- >> begin captured logging << --------------------
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/NoseGAE-0.1.7-py2.5.egg', '')
root: WARNING: Could not read datastore data from /tmp/nosegae.datastore
root: WARNING: Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named Image
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/gaetestbed-0.12dev_r30-py2.5.egg', '')
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/WebTest-1.2.1-py2.5.egg', '')
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg', '')
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/WebOb-0.9.8-py2.5.egg', '')
root: INFO: zipimporter('/home/wraith/dev/projects/myapp/lib/python2.5/site-packages/PyYAML-3.09-py2.5-linux-x86_64.egg', '')
root: DEBUG: Could not import "strop": Disallowed C-extension or built-in module
--------------------- >> end captured logging << ---------------------
Cependant, si je retire l'appel à couverture, mes tests échouent toujours.
J'ai couru avec succès des projets Python avec Hudson. Y a-t-il une nuance GAE qui me fait trébucher?
Je n'ai pas de fichier .profile, juste .bashrc, dont les variables sont prises en compte. Dois-je utiliser .profile à la place? Est-ce un fichier système qui est supposé être stocké dans/etc /? –
J'ai trouvé que définir les chemins explicites dans chacune des étapes Hudson résout tous les problèmes que j'ai. Par exemple, PYTHONPATH =.: $ HOME/dev/modules/contrib: $ HOME/dev/sdks/google_appengine. C'est un peu lourd, mais ça marche. Merci de m'avoir indiqué la bonne direction. –
Vous pouvez éviter de définir la variable d'environnement pour chaque étape de construction. Vous pouvez définir des variables d'environnement dans la configuration principale d'Hudson. Cette variable d'environnement sera ensuite définie pour chaque travail. Cela peut également être fait au niveau du nœud (j'utilise cette approche). Il y a aussi un plugin, qui vous donne la possibilité de définir des variables au niveau du Job. Cela rend un peu plus facile que de le mettre dans chaque étape. :) –