2013-03-17 55 views
2

我不能让这种错误的任何意义:处理程序测试失败:WebTest的导入错误

====================================================================== 
ERROR: test_webtest (unittest2.loader.ModuleImportFailure) 
---------------------------------------------------------------------- 
ImportError: Failed to import test module: test_webtest 
Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/unittest2/loader.py", line 260, in _find_tests 
    module = self._get_module_from_name(name) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/unittest2/loader.py", line 238, in _get_module_from_name 
    __import__(name) 
    File "/Users/chris/Documents/gae/tasker/test/test_webtest.py", line 4, in <module> 
    import webtest 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/webtest/__init__.py", line 9, in <module> 
    from webtest.app import TestApp 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/webtest/app.py", line 65, in <module> 
    class TestRequest(webob.BaseRequest): 
AttributeError: 'module' object has no attribute 'BaseRequest' 

的情况是:

  • 我试图建立处理器单元测试我的App Engine应用程序。
  • 我正在关注单元测试框架this tutorial,其中包括逐页底部的 bash脚本。
  • 我从使用此命令的终端运行测试:

    ./run_tests.py /usr/local/google_appengine test/

  • 我使用this tutorial为构建我的处理程序测试。但它永远不会超过进口。所有我需要做的就是这test/test_webtest.py生成错误:

    import webtest 
    
  • 我有WebTest的安装:

    $ pip install WebTest 
    Requirement already satisfied (use --upgrade to upgrade): WebTest in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages 
    Requirement already satisfied (use --upgrade to upgrade): six in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from WebTest) 
    Requirement already satisfied (use --upgrade to upgrade): WebOb>=1.2 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from WebTest) 
    Requirement already satisfied (use --upgrade to upgrade): waitress in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from WebTest) 
    Requirement already satisfied (use --upgrade to upgrade): beautifulsoup4 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from WebTest) 
    Requirement already satisfied (use --upgrade to upgrade): distribute in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg (from waitress->WebTest) 
    
  • 我正在我一下子所有测试,包括旧的,与通没有错误。但是将webtest导入其中的任何一个会在顶部生成错误。为什么?

+0

我没有时间阅读教程链接,但我使用鼻子和鼻子gae进行webtest测试,他们的工作很好。 – 2013-03-17 23:08:37

+0

Kekito:根据下面描述的已知错误,我很惊讶你的事情顺利进行,我想复制你的魔法。你有意识地解决这个错误吗?你在做与我不同的事吗? – Chris 2013-03-18 12:40:28

+0

您可能会使用旧版本的GAE SDK。 1.7.5和更早版本有这个问题。目前的最新情况(1.8.8)应该可以解决这个问题。 – 2013-11-28 21:46:54

回答

0

这原来是我的不同python环境的一个愚蠢的问题。我的路径中的pippython被链接到/user/local/bin/python。事实上,这就是webtest的安装位置。

我从教程复制的代码,然而,有这样hashbang:#!/usr/bin/python所以当我./run_tests.py运行它,它在WebTest的安装的环境跑去。

运行python ./run_tests.py或将hashbang更改为#!/user/local/bin/python可解决此问题。

0

我在GAE上使用webtest,它正在为我工​​作。我会尝试找出我的设置和你之间的差异,看看是否能帮助你:

  • 我使用unittest而不是unittest2
  • 我没有使用像run_tests.py这样的脚本。我只是这样从命令行调用它:nosetests --with-gae