时间:2011-07-21 11:52:55

标签: php cucumber mechanize mamp webrat

我已经通过测试通过了测试我的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上的虚拟主机是默认的localhost时,这很好。但是当我使用相同的文档创建另一个虚拟主机(并更新session.visit以使用新的根)时,此测试失败。会议似乎丢失了。

有谁知道如何调试这个?我查看了html输出,它将内容显示为未经身份验证的用户,这就是我认为会话正在重置的原因。

修改
我检查了虚拟主机,它们完全一样。测试失败的测试往往会慢一个数量级。

1 个答案:

答案 0 :(得分:0)

我最终搬到了水豚。有机械化的版本在张贴表单数据等方面有一些错误.Capybara工作得更好。