Database 使用硒在水豚中创建动态记录不起作用
我正试图用selenium驱动程序在水豚上运行我的应用程序的cucumber测试。在测试步骤中,我动态创建用户以登录应用程序。但是我创建的用户登录失败。我已将用户\u事务\u fixture设置为false。创建的记录仍然不可用于selenium应用程序 这是密码 特征文件 @浏览者 场景:管理员可以单独访问管理员页面 给予”admin@example.com“他是管理员 当我以“身份”登录时admin@example.com" 步骤定义文件 给定/“([^\“]*)”是一封管理员/do |电子邮件| user=Email.active.find_by_address(Email).try(:user)| | user.new({},:password=> 'Monkey_123',:password_confirmation=>'Monkey_123',:last_name=>'example',:first_name=>'admin') user.update_属性(:state,“active”) user.update_属性(:条款和条件已接受,1) user.groups电子邮件,:state=>email::state::ACTIVE :email_type=>email::type::PRIMARY) user.save 当我使用capybara和selenium driveri运行测试时,我无法使用 通过浏览器创建的用户 我尝试使用ruby调试器,它显示了特定用户的创建 以下是我在env.rb文件中的配置 如果已定义?(ActiveRecord::Base) 开始 结束 结束 Capybara.server_port=9887#或任何您想要的号码 Capybara.app_主机=”http://localhost:#{Capybara.server_port}” Capybara.default\u wait\u time=4 Capybara.ignore\u hidden\u elements=false 在('@browser')之前 Capybara.current_驱动程序=:selenium 结束 请对此提出解决方案。gems版本为 1) 黄瓜-V0.10.7 2) 黄瓜轨道0.3.2 3) 水豚0.4.1.2 4) 数据库清理器0.5.0Database 使用硒在水豚中创建动态记录不起作用,database,cucumber,capybara,Database,Cucumber,Capybara,我正试图用selenium驱动程序在水豚上运行我的应用程序的cucumber测试。在测试步骤中,我动态创建用户以登录应用程序。但是我创建的用户登录失败。我已将用户\u事务\u fixture设置为false。创建的记录仍然不可用于selenium应用程序 这是密码 特征文件 @浏览者 场景:管理员可以单独访问管理员页面 给予”admin@example.com“他是管理员 当我以“身份”登录时admin@example.com" 步骤定义文件 给定/“([^\“]*)”是一封管理员/do |电子
谢谢我在Cucumber、Capybara和Selenium上遇到了类似的问题。Desive不允许创建的用户登录。在测试期间,Cucumber无法通过浏览器使用创建的用户登录到应用程序。当我将Capybara驱动程序设置为rack_测试时,测试通过,但当我将其设置为Selenium时,它以“Inva”失败在设计的登录页面上显示“lid电子邮件或密码” 最后我找到了答案。当使用事务性装置时,Selenium无法访问已写入数据库的信息。因此,您必须关闭事务性装置,并在配置文件中将DatabaseCleaner策略设置为:truncation.In(在我的例子中,features/support/env.rb和spec/spec_helper.rb)定义了以下内容:在cucumber配置中,features/support/env.rb
DatabaseCleaner.strategy = :truncation
在RSpec配置中spec/spec\u helper.rb
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.before :each do
DatabaseCleaner.start
end
config.after :each do
DatabaseCleaner.clean
end
end
我没有看到任何问题。我也没有看到任何代码,如果你想让人们知道你做错了什么,这些代码会很有帮助。
RSpec.configure do |config|
config.use_transactional_fixtures = false
config.before :each do
DatabaseCleaner.start
end
config.after :each do
DatabaseCleaner.clean
end
end