RSpec在Mac上使用rvm运行但在Linux上无法启用

时间:2013-01-27 15:31:13

标签: ruby rspec jenkins

我有一个ruby项目,我一直在使用ruby 1.9.3到rvm在我的mac上开发。 今天我大部分时间都在设置构建服务器来运行我的测试,因为我检查了对repo的更改。我的服务器运行Ubuntu。我安装了rvm并使用了1.9.3。

但是现在我尝试使用

运行我的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'

并且commandsExector.rb位于我的lib目录中。

1 个答案:

答案 0 :(得分:2)

OS X'文件系统默认情况下不区分大小写,而Linux文件系统通常区分大小写。您说该文件名为commandExecutor.rb,因此要求的正确方法是

require 'commandExecutor'
PS:作为旁注,在Ruby(以及大多数其他编程语言)的文件名中不使用大写字母是常见的约定,C#和Java是一些显着的排除。