【发布时间】:2011-07-26 16:31:09
【问题描述】:
我最近在尝试运行任何 Cucumber 测试时开始看到此错误消息。我进行了一些研究,发现了其他一些类似的此错误实例,但其中大多数是与浏览器相关的问题。我在此输出中没有看到任何特定于浏览器的错误消息:
unable to bind to locking port 7054 within 45 seconds (Selenium::WebDriver::Error::WebDriverError)
我看到此处发布的另一个问题已得到解答 (A selenium webdriver exception),但该解决方案对我不起作用。运行“lsof -i TCP:7054”不会产生任何输出。
以防万一有人建议这样做,我已经多次重新启动我的机器并擦除了我的 gemset 并重新运行了“捆绑包”。
以下是我正在使用的相关宝石:
capybara (0.4.1.2)
cucumber (0.10.7)
cucumber-rails (0.4.1)
fuubar-cucumber (0.0.9)
selenium-webdriver (0.2.0)
可以肯定的是,我还尝试使用 Firefox 3.6、4.0 和 5.0 运行这些测试。每次都发送相同的消息。
不要成为阴谋论者或其他任何人,但在我手动退出运行我的测试套件并对 Cucumber 启动的所有活动 Firefox 进程运行 pkill 之前,一切正常。在测试套件期间,我有大约 9 个 Firefox 实例同时运行。我不确定这是否会导致发生一些混乱的事情,从而产生我现在通过运行 Cucumber 测试看到的结果。
有人对解决这个问题有什么建议吗?
【问题讨论】:
-
您是否尝试在等待连接的 45 秒窗口中运行 lsof 命令?使用 $DEBUG = true 运行(或将 -d 传递给 ruby)将为您提供更多调试输出。
-
我确实在第一次测试期间运行了 lsof,在 45 秒的窗口内。我仍然没有得到任何输出。对于我拥有的每个 gem,使用调试模式运行都会出现此错误:“Exception
NoMethodError' at rvm/gems/ruby-1.9.2-p136/gems/bundler-1.0.15/lib/bundler/lazy_specification.rb:66 - undefined methodto_ary' for json_pure (1.5.1):Bundler::LazySpecification” -
$DEBUG = true 将打印所有获救的异常,因此预计会有很多输出。查看该输出将帮助我们诊断您的问题。
-
抱歉,$DEBUG 需要在 Ruby 代码中设置为全局变量,而不是环境变量。通过在命令行上将 -d 传递给 ruby 也可以实现同样的目的。
标签: ruby-on-rails ruby selenium cucumber