3

我一直在努力解决这个问题。我正在尝试测试一个 ruby​​ CLI,它使用很多fileutils操作,如创建目录和复制文件等。但是当我编写测试时,我需要一些方法来测试功能,而无需接触和更改实际的文件系统。我正在尝试使用fakefsgem,但我马上遇到了错误

When I successfully run `dotfiles init`                           # aruba-0.5.3/lib/aruba/cucumber.rb:71
      No such file or directory - No such file or directory - /tmp/aruba-out20130817-15800-ke8nou (Errno::ENOENT)
      /Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/tempfile.rb:146:in `open'
      /Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/tempfile.rb:146:in `block in initialize'
      /Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/tmpdir.rb:142:in `create'
      /Users/Brian/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/tempfile.rb:136:in `initialize'
      features/dotfiles_repository.feature:8:in `When I successfully run `dotfiles init`'

因此,它没有/tmp/aruba根据自述文件找到 cucumber aruba 执行所有文件操作的位置。没有 ,测试运行良好fakefs,所以我假设它与设置有关。

这是我的features/support/env.rb文件

require 'aruba/cucumber'
require 'fakefs/safe'

Before do
  FakeFS.activate!
end

After do
  FakeFS::FileSystem.clear
  FakeFS.deactivate!
end

有谁知道我可能做错了什么?任何帮助表示赞赏。即使它是一个不使用 fakefs 的想法,我也想听听。谢谢

4

0 回答 0