首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails -调试selenium-webdriver 404错误

Rails -调试selenium-webdriver 404错误
EN

Stack Overflow用户
提问于 2014-03-28 04:34:48
回答 1查看 257关注 0票数 0

我正在使用Rspec,Capybara和Selenium (WebDriver)来测试我的Rails应用,一个简单的在线商店。以下是该规范的一个简化版本,但它失败了:

代码语言:javascript
复制
describe 'Team Order' do

  let(:product) { Product.last }

  before do
    create :product_with_color_and_size
  end

  it 'goes to product page', js: true do
    visit add_team_order_path(product)
    expect(page).to have_content(product.name)
  end

end

具体地说,Selenium驱动的Firefox窗口显示我的应用程序的404页面,导致对产品名称的检查失败。

当我从it块中调用debugger并查询Product.last时,我可以在测试数据库中看到有问题的产品。所以我怀疑Selenium命中了我的app...or的错误实例。

不确定这是否相关,但浏览器指向http://127.0.0.1:49736/products/product-10/add-team-order (尽管端口在rspec运行之间会发生变化)。

我的问题是,我可以做些什么来验证它是否命中了正确的实例?如果不是,我可以采取哪些步骤来修复is?

编辑:

Spec_helper.rb中的database_cleaner配置:

代码语言:javascript
复制
RSpec.configure do |config|

  config.before :suite do
    DatabaseCleaner.strategy = :transaction
    DatabaseCleaner.clean_with :truncation
  end

  config.before :each do
    DatabaseCleaner.start
  end

  config.after :each do
    DatabaseCleaner.clean
  end
EN

回答 1

Stack Overflow用户

发布于 2014-03-29 07:09:42

问题最终被证明是database_cleaner与我的js: true规格冲突。一个不错的总结:

问题总是一样的:测试被包装在数据库事务中,因此在实际测试进程之外运行的任何代码(例如,为Selenium驱动的浏览器请求提供服务的服务器进程)都看不到我精心组装的数据库fixture。

更多信息,以及我的解决方案,请访问:http://devblog.avdi.org/2012/08/31/configuring-database_cleaner-with-rails-rspec-capybara-and-selenium/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22698624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档