2010-10-14 15 views
0

J'utilise une bibliothèque tierce qui a besoin de urlfetch de google.appengine.api. Il est importé dans les essais d'exécution à l'aide de cette ligne:Pourquoi une erreur dans nosetests et pas dans Eclipse?

from google.appengine.api import urlfetch 

Le répertoire google_appengine est sur mon PYTHONPATH, et si j'exécute mes tests unitaires directement depuis Eclipse, je ne vois pas d'erreur. Cependant, si j'utilise nosetests, je vois ceci:

File "/home/wraith/dev/sdks/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 54, in CreateRPC 
assert stub, 'No api proxy found for service "%s"' % service 
AssertionError: No api proxy found for service "urlfetch" 

Quelqu'un avait un similar issue, mais je suis en utilisant Python 2.5 et j'ai essayé d'exécuter nosetests à partir du répertoire google_appengine en utilisant --where et fournissant le chemin à mon répertoire de test unitaire et je vois le même résultat.

Pourquoi cette erreur se produit-elle dans Eclipse mais échoue dans nosetests?

Répondre

1

Les appels aux API App Engine sont gérés par des modules proxy API. Dans le dev_appserver, des versions locales de développement sont configurées pour vous, mais si vous essayez d'exécuter votre code directement à partir de la ligne de commande, elles ne sont pas configurées.

Vous pouvez les configurer vous-même quelque chose comme this, ou vous pouvez simplement utiliser nosegae.

+0

J'ai configuré le nez et nosegae, mais je reçois cette erreur: augmenter AppConfigNotFoundError \ google.appengine.tools.dev_appserver.AppConfigNotFoundError. C'est parce que le module que je développe n'est pas une application GAE, mais utilise simplement l'un de ses modules. Existe-t-il un moyen d'utiliser nosegae sans avoir une application GAE? –

+0

Vous devez créer un app.yaml factice - nosegae utilise une partie du dev_appserver pour exécuter ses tests, ce qui attend la configuration de l'application. –

+0

Merci pour votre aide, Nick. Je vous en suis reconnaissant. –