1

Pythonでレタスを使用してAttributeErrorに固執しています。

私はウェブサイトhttp://lettuce.it/reference/terrain.html#reference-terrainの lettuce=0.2.19 ドキュメントに従おうとしていますが、何が間違っているのかわかりません。

virtualenv を使用してクリーンな環境を開始しています。テスト用に非常にばかげた機能を追加したいと思います。

ディレクトリの編成は

features
    |_terrain.py
    |_ user_reauth.feature
    |_ user_steps.py

ここに私の Terrain.py ファイルがあります:

from lettuce import before, after, world
from lettuce.django import django_url
from selenium import selenium

@before.harvest
def prepare_browser_driver(variables):
    if variables.get('run_server', False) is True:
        world.browser = selenium('localhost', 4444, '*firefox', django_url('/'))
        world.browser.start()

@after.harvest
def shutdown_browser_driver(results):
    world.browser.stop()

および user_steps.py ファイル:

from lettuce import world, step
from lettuce.django import django_url

@step(u'User is already authenticated with username "(.*)')
def user_is(step, username):
    assert 1==1

@step(u'I go to the "(.*)" URL')
def i_go_to_the_url(step, url):
    world.response = world.browser.visit(django_url(url))

@step(u'I should see "(.*)"')
def i_should_see(step, text):
    assert text in world.browser.html

次のコマンドを使用する場合:

python manage.py harvest --settings=my_settings dir/features/user_reauth.feature

次のエラーが表示されます。

line 13, in shutdown_browser_driver
    world.browser.stop()
AttributeError: 'thread._local' object has no attribute 'browser'
4

1 に答える 1

1

私が知っている限りmanage.py harvestでは、レタスは を介し​​てテストを起動している間、manage.py が存在するフォルダーで Terrain.py を見つけることを期待しています。そのフォルダに Terrain.py を配置してみてください。

于 2013-10-04T23:33:42.340 に答える