У меня есть огурец, тестирующий мое приложение на drupal с прохождением тестов, например:
Given /^I am authenticated as a "([^"]*)" user$/ do |role|
visit('/user')
fill_in "name", :with => "user_#{role.downcase}"
fill_in "pass", :with => "password"
click_button
visit('/') #gets around a 302 redirect issue
response_body.should contain("Log out")
end
Мой env.rb выглядит примерно так:
require 'rspec/expectations'
require 'webrat'
require 'test/unit/assertions'
World(Test::Unit::Assertions)
Webrat.configure do |config|
config.mode = :mechanize
end
World do
session = Webrat::Session.new
session.extend(Webrat::Methods)
session.extend(Webrat::Matchers)
session.visit('http://localhost')
session
end
Это проходит нормально, когда мойвиртуальный хост на MAMP является локальным хостом по умолчанию.Но когда я создаю другой виртуальный хост с тем же документом (и обновляю файл session.visit для использования нового корня), этот тест не пройден.Кажется, сессия потеряна.
Кто-нибудь знает, как это отладить?Я посмотрел на вывод html, и он показывает содержимое как не прошедший проверку подлинности пользователя, поэтому я думаю, что сеанс сбрасывается.
Редактировать
Я проверил виртуальные хосты иони точно такие же.Тот, у которого тесты не пройдены, как правило, на порядок медленнее.