2013-09-05 1 views
1

Я застрял на атрибуте AttributeError, используя салат в питоне.AttributeError: объект «thread._local» не имеет атрибута «браузер»

Я стараюсь следить за салатом = 0.2.19 документация нет на сайте http://lettuce.it/reference/terrain.html#reference-terrain, но не могу понять, что я делаю неправильно.

Я использую 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' 

ответ

1

Столько, сколько я знаю, в то время как запуск тестов через manage.py harvest, салат рассчитывает найти terrain.py в папке, где находится manage.py. Попробуйте поместить в эту папку файл terrain.py.

Смежные вопросы