当我需要'fakefs'时,未初始化的常量File :: NOCTTY错误

| 我正在尝试使用FakeFS,但在我
require \'fakefs\'
时不断收到未初始化的常量错误:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:26:in `<class:File>\': uninitialized constant File::NOCTTY (NameError)
我最初是在RubyMine中工作的,但是为了找出问题所在,我编写了一个简单的hello world脚本并从命令行运行它,但仍然遇到相同的错误。这是该脚本:
require \'rubygems\'
gem \'fakefs\'
require \'fakefs\'

puts \"Hello Cleveland!\"
这是错误和随附的stacktrace:
>ruby foo.rb
C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:26:in `<class:File>\': uninitialized constant File::NOCTTY (NameError)
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:4:in `<module:FakeFS>\'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/file.rb:3:in `<top (required)>\'
    from <internal:lib/rubygems/custom_require>:29:in `require\'
    from <internal:lib/rubygems/custom_require>:29:in `require\'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs/safe.rb:9:in `<top (required)>\'
    from <internal:lib/rubygems/custom_require>:29:in `require\'
    from <internal:lib/rubygems/custom_require>:29:in `require\'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/fakefs-0.3.1/lib/fakefs.rb:1:in `<top (required)>\'
    from <internal:lib/rubygems/custom_require>:29:in `require\'
    from <internal:lib/rubygems/custom_require>:29:in `require\'
    from foo.rb:3:in `<main>\'
我通过RubyMine安装了fakefs gem。我正在使用Ruby 1.9的Windows上工作。有任何想法吗?     
已邀请:
这是因为Windows没有
NOCTTY
SYNC
标志。您可以将此方法添加到
base.rb
文件中:
def RealFile.const_missing const
  const_set const, 42
end
确实,我不知道它将来是否会引起任何问题,但是您至少可以运行您的脚本。我想你应该在github上写这个 有一个带有一些Windows修复程序的前叉(此人完全注释了所有标志):https://github.com/vertiginous/fakefs     

要回复问题请先登录注册