RSpec 在 Mac 上使用 rvm 运行,但在 Linux 上因需要而失败



我有一个 ruby 项目,我一直在 mac 上使用 ruby 1.9.3 到 rvm 开发。今天,我花了大部分时间设置一个构建服务器来运行我的测试,因为我将更改签入到我的存储库。我的服务器运行 Ubuntu。我安装了 rvm 并也使用了 1.9.3。

但是现在当我尝试使用 rspec 运行我的 rspec 测试时,我收到加载错误

bundle exec rspec

这适用于我的 Mac,我不知道为什么它在我的 Linux 机器上不起作用。

morten@Lux:/var/lib/jenkins/jobs/getdone/workspace$ bundle exec rspec
/var/lib/jenkins/jobs/getdone/workspace/spec/lib/commandExecutor_spec.rb:1:in `require': cannot load such file -- CommandsExecutor (LoadError)
    from /var/lib/jenkins/jobs/getdone/workspace/spec/lib/commandExecutor_spec.rb:1:in `<top (required)>'
    from /home/morten/.rvm/gems/ruby-1.9.3-p374/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `load'
    from /home/morten/.rvm/gems/ruby-1.9.3-p374/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `block in load_spec_files'
    from /home/morten/.rvm/gems/ruby-1.9.3-p374/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `each'
    from /home/morten/.rvm/gems/ruby-1.9.3-p374/gems/rspec-core-2.12.2/lib/rspec/core/configuration.rb:789:in `load_spec_files'
    from /home/morten/.rvm/gems/ruby-1.9.3-p374/gems/rspec-core-2.12.2/lib/rspec/core/command_line.rb:22:in `run'
    from /home/morten/.rvm/gems/ruby-1.9.3-p374/gems/rspec-core-2.12.2/lib/rspec/core/runner.rb:80:in `run'
    from /home/morten/.rvm/gems/ruby-1.9.3-p374/gems/rspec-core-2.12.2/lib/rspec/core/runner.rb:17:in `block in autorun'

要求行只是说

require 'CommandsExecutor'

命令Exector.rb位于我的lib目录中。

OS X的文件系统默认不区分大小

写,而Linux文件系统通常区分大小写。你说文件被命名为commandExecutor.rb,所以正确的要求方法是

require 'commandExecutor'

PS:作为旁注,在Ruby(和大多数其他编程语言)的文件名中不使用大写字母是一种常见的惯例,C#和Java是一些突出的排除项。

相关内容

最新更新