【问题标题】:javascript rspec testing times outjavascript rspec 测试超时
【发布时间】:2014-04-08 19:14:47
【问题描述】:

我正在使用capybararspec 来测试我的rails 应用程序。准确地说,我测试了一些javascript代码。事实上,运行测试会启动firefox(我该如何配置?)。首先,firefox浏览器的页面加载很长,然后我得到这个错误

Failure/Error: visit root_path
     Net::ReadTimeout:
       Net::ReadTimeout

我该如何解决这个问题?

【问题讨论】:

    标签: javascript ruby-on-rails ruby testing


    【解决方案1】:

    您的 Firefox 浏览器正在启动,因为 Capybara 正在使用默认的网络驱动程序 (selenium)。 如果您不想加载浏览器,可以将 capybara javascript driver 切换为 webkit 例如。请考虑this 以了解如何安装 webkit 驱动程序。

    关于Net::ReadTimeout,我认为您需要在您的 spec_helper 中为 Capybara 指定正确的主机和正确的端口:

    spec_helper.rb:
    # Capybara.server_port = 3001
    Capybara.host = 127.0.0.1 # Try to experiment with this option !
    
    Capybara.javascript_driver = :webkit # or :selenium
    Capybara.current_driver = :webkit # or :selenium
    Capybara.run_server = true #Whether start server when testing
    # Capybara.default_selector = :css #:xpath #default selector , you can change to :css
    Capybara.default_wait_time = 3 #When we testing AJAX, we can set a default wait time
    Capybara.ignore_hidden_elements = false #Ignore hidden elements when testing, make helpful when you hide or show elements using javascript
    

    如果您对127.0.0.1 地址有疑问,这可能是由于您的shell 中的代理配置错误。尝试在地址 %your_IP_adress% 上启动您的网络服务器

    如果您使用 Selenium 网络驱动程序,检查 this 主题以了解如何设置 chrome 浏览器而不是 firefox 会很有帮助

    【讨论】:

    • 谢谢您,我会检查一下并回复您
    • 确实我搞定了,但是运行一些简单的测试仍然需要 20 秒,这正常吗?如何提高速度?
    • 您可以尝试使用sporkspringzeus 等宝石来减少此时间。
    【解决方案2】:

    查看浏览器中的状态栏。或许,在一张大图片中,需要大量时间才能下载到。 尝试从 root_path 视图中删除所有图片。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 2021-09-26
      相关资源
      最近更新 更多