3

私はこのエラーを理解できません:

======================================================================
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'

状況は次のとおりです。

  • AppEngineアプリのハンドラー単体テストを設定しようとしています。
  • ページの下部にあるbashスクリプトを逐語的に含む、単体テストフレームワークのこのチュートリアルに従っています。
  • 次のコマンドを使用して、ターミナルからテストを実行しています。

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

  • このチュートリアルを使用して、ハンドラーテストを構成しています。しかし、それは輸入品を超えることはありません。私がしなければならないのは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ただし、それらのいずれかにインポートすると、上部にエラーが発生します。なんで?

4

2 に答える 2

0

私はGAEでwebtestを使用していますが、それは私のために働いています。私のセットアップとあなたのセットアップの違いを特定して、それがあなたに役立つかどうかを確認しようと思います。

  • 私は使用unittestしていますが、使用していませんunittest2
  • 私はあなたのようなスクリプトを使用していませんrun_tests.py。次のようにコマンドラインから呼び出します。nosetests --with-gae
于 2013-03-24T18:24:10.417 に答える
0

これは、私のさまざまなPython環境ではばかげた問題であることが判明しました。

pipと私のpythonパスはにリンクされていました/user/local/bin/python。実際、ここにwebtestがインストールされました。

ただし、チュートリアルからコピーしたコードにはこのシバンが含まれていました。#!/usr/bin/pythonそのため、で実行すると./run_tests.py、webtestがインストールされていない環境で実行されました。

いずれかを実行するかpython ./run_tests.py、ハッシュバンを変更し#!/user/local/bin/pythonて問題を修正しました。

于 2014-04-02T17:38:25.880 に答える