【问题标题】:FFI is a required pre-requisite for Windows or posix_spawn support in the ChildProcess gemFFI 是 ChildProcess gem 中 Windows 或 posix_spawn 支持的必要先决条件
【发布时间】:2019-12-31 06:23:36
【问题描述】:

我正在执行使用 Ruby 编程语言创建的 Cucumber 脚本,但它引发了与 Child Process 相关的错误,该错误具有先决条件 od FFI gem,下面是错误堆栈跟踪

    FFI is a required pre-requisite for Windows or posix_spawn support in the ChildProcess gem. Ensure the `ffi` gem is installed. If you believe this is an error, please file a bug at http://github.com/enkessler/childprocess/issues (ChildProcess::MissingFFIError)
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/childprocess-3.0.0/lib/childprocess/windows.rb:6:in `rescue in <top (required)>'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/childprocess-3.0.0/lib/childprocess/windows.rb:3:in `<top (required)>'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/childprocess-3.0.0/lib/childprocess.rb:209:in `require'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/childprocess-3.0.0/lib/childprocess.rb:209:in `<top (required)>'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.142.6/lib/selenium/webdriver.rb:20:in `require'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.142.6/lib/selenium/webdriver.rb:20:in `<top (required)>'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.142.6/lib/selenium-webdriver.rb:20:in `require'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/selenium-webdriver-3.142.6/lib/selenium-webdriver.rb:20:in `<top (required)>'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/watir-6.11.0/lib/watir.rb:1:in `require'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/watir-6.11.0/lib/watir.rb:1:in `<top (required)>'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/page-object-2.2.4/lib/page-object.rb:1:in `require'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/page-object-2.2.4/lib/page-object.rb:1:in `<top (required)>'
E:/e2NxtAutomation/DEVOPS/Spec/Func/features/support/env.rb:4:in `require'
E:/e2NxtAutomation/DEVOPS/Spec/Func/features/support/env.rb:4:in `<top (required)>'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/glue/registry_and_more.rb:107:in `load'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/glue/registry_and_more.rb:107:in `load_code_file'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/runtime/support_code.rb:144:in `load_file'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/runtime/support_code.rb:85:in `block in load_files!'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/runtime/support_code.rb:84:in `each'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/runtime/support_code.rb:84:in `load_files!'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/runtime.rb:272:in `load_step_definitions'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/runtime.rb:68:in `run!'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/lib/cucumber/cli/main.rb:34:in `execute!'
C:/Ruby24-x64/lib/ruby/gems/2.4.0/gems/cucumber-3.1.1/bin/cucumber:9:in `<top (required)>'
C:/Ruby24-x64/bin/cucumber:23:in `load'
C:/Ruby24-x64/bin/cucumber:23:in `<main>'

Process finished with exit code 2

根据错误,我已成功安装 FFI Gem

gem install ffi
Fetching: ffi-1.11.3-x64-mingw32.gem (100%)
Successfully installed ffi-1.11.3-x64-mingw32
Parsing documentation for ffi-1.11.3-x64-mingw32
Installing ri documentation for ffi-1.11.3-x64-mingw32
Done installing documentation for ffi after 2 seconds
1 gem installed

但还是会出现同样的错误。我的机器详细信息 操作系统:Windows 7 Ruby 版本:2.4.0

为此建议我一些解决方法。

【问题讨论】:

    标签: ruby cucumber watir ffi rubymine


    【解决方案1】:

    我建议检查您的 ruby​​ 版本。 FFI gem 有不同的版本。 一些在 ruby​​ 上工作直到 2.2 版。 有时您在旧的 ruby​​ 版本上安装最新版本的 FFI gem 我建议卸载当前的 ruby​​ 并将 ruby​​ 升级到 2.5.7 版本。完成后,重新安装 gem 并查看您的自动化是否有效

    【讨论】:

    • 我有同样的问题,但我有 ruby​​ 2.6.5p114(2019-10-01 修订版 67812),我认为这是最新版本。为什么 ruby​​ 这么难用?
    【解决方案2】:

    使用此命令安装 FFI - gem install ffi -v 1.13.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-02
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多