【问题标题】:No route matches [GET] "/" (ActionController::RoutingError)没有路由匹配 [GET] "/" (ActionController::RoutingError)
【发布时间】:2015-11-22 23:39:01
【问题描述】:

我有一个应用程序在这个 url 上正确运行

http://workspace-username.c9users.io/?#/bookings

我的服务器在 8081 端口上运行。

当我在线运行我的cucumber

visit  http://workspace-username.c9users.io/?#/bookings 

它给了我错误:

   No route matches [GET] "/" (ActionController::RoutingError)

我只是感到惊讶,因为应用程序也在运行,但capybara 无法获取它。 我也试过了

visit  http://workspace-username.c9users.io:8081/?#/bookings 

但还是有同样的错误

【问题讨论】:

  • 您使用的是什么驱动程序?默认的 racktest 驱动程序无法连接到非本地 url,因此它会忽略主机名
  • 司机是什么意思?
  • Capybara 支持多个驱动程序,如果你想连接到远程站点,你需要使用 racktest 以外的一个 - github.com/jnicklas/capybara#drivers

标签: ruby-on-rails cucumber capybara


【解决方案1】:

当访问外部页面时,capybara 需要使用除 racktest 之外的 Web 驱动程序,因为 racktest 只与机架应用程序对话。要测试网站,您需要使用其他驱动程序,例如 selenium。

如果您只需要该驱动程序进行该测试,则可以将驱动程序设置为 selenium。

Capybara.current_driver = :selenium

或者在配置rspec时更改默认驱动

Capybara.default_driver = :selenium

【讨论】:

  • 我应该在哪里添加这一行?
  • 第一个可以进入测试文件本身,因为您只希望它应用于该组测试。第二个通常位于 Rspec 配置块内的 rails 帮助文件中。
  • 设置default_driver 对我有用(current_driver 没有)。
猜你喜欢
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
相关资源
最近更新 更多