2012-12-12 4 views
2

Je suis triyng pour tester certains modèles GAE avec nose et noseGAE plugin.Tester localement des projets GAE-python27-django

Les tutoriels montrent comment exécuter le test en utilisant la configuration du framework webapp comme dans ce tutoriel http://farmdev.com/projects/nosegae/. Mais depuis que je suis en utilisant django, mon main.py est:

import os 

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

import django.core.handlers.wsgi 
app = django.core.handlers.wsgi.WSGIHandler() 

Lorsque je tente de courir le nez:

$ nosetests --with-gae 

Je reçois:

Traceback (most recent call last): 
    File "c:\Python27\Scripts\nosetests-script.py", line 8, in <module> 
    load_entry_point('nose==1.2.1', 'console_scripts', 'nosetests')() 
    File "C:\Python27\lib\site-packages\nose-1.2.1-py2.7.egg\nose\core.py", line 118, in __init__ 
    **extra_args) 
    File "C:\Python27\lib\unittest\main.py", line 94, in __init__ 
    self.parseArgs(argv) 
    File "C:\Python27\lib\site-packages\nose-1.2.1-py2.7.egg\nose\core.py", line 135, in parseArgs 
    self.config.configure(argv, doc=self.usage()) 
    File "C:\Python27\lib\site-packages\nose-1.2.1-py2.7.egg\nose\config.py", line 338, in configure 
    self.plugins.configure(options, self) 
    File "C:\Python27\lib\site-packages\nose-1.2.1-py2.7.egg\nose\plugins\manager.py", line 284, in configure 
    cfg(options, config) 
    File "C:\Python27\lib\site-packages\nose-1.2.1-py2.7.egg\nose\plugins\manager.py", line 99, in __call__ 
    return self.call(*arg, **kw) 
    File "C:\Python27\lib\site-packages\nose-1.2.1-py2.7.egg\nose\plugins\manager.py", line 167, in simple 
    result = meth(*arg, **kw) 
    File "build\bdist.win32\egg\nosegae.py", line 80, in configure 
ImportError: No module named dev_appserver 

Je pensais que c'était parce que le django dépendances, bu ensuite j'ai essayé d'exécuter un seul fichier:

import unittest 
from google.appengine.ext import testbed 

class TestServicios(unittest.TestCase): 
    def setUP(self): 
     self.testbed = testbed.Testbed() 
     self.testbed.activate() 
     self.testbed.init_datastore_v3_stub() 

    def tearDown(self): 
     self.testbed.deactivate() 

if __name__ == '__main__': 
    unittest.main() 

Puis:

$ python test_models.py 

Et:

Traceback (most recent call last): 
    File "test_models.py", line 2, in <module> 
    from google.appengine.ext import testbed 
ImportError: No module named google.appengine.ext 

GAE information version: 1.7.3 Durée: python27

Quelqu'un sait ce qui se passe ici? Merci.

Répondre

2

Je le recommande documentation. Il montre un exemple comment vous pouvez écrire un testrunner.py pour charger votre classe de test, ainsi vous pouvez avoir un mini cadre de test. Plus précisément, le code suivant est ce que vous recherchez:

sys.path.insert(0, sdk_path) 
import dev_appserver 
dev_appserver.fix_sys_path() 

sdk_path est où votre sdk google_appengine est situé à. Par exemple, il pourrait être/usr/local/google_appengine sur linux.

1

Si vous utilisez django, je vous recommande d'utiliser l'infrastructure de test django au lieu de nose-gae.

+0

Avez-vous rencontré des problèmes avec le magasin de données ou tout autre service travaillant sur django? – loki

+0

Il y a un peu de douleur lorsque les modèles django ne correspondent pas aux modèles db natifs de GAE, comme travailler avec des transactions. De plus, j'utilise django-nonrel avec le HRD. Vos résultats peuvent varier avec django pur sur CloudSQL. – dragonx

Questions connexes