1

我有一个 ruby​​ 项目,我一直在我的 mac 上使用 ruby​​ 1.9.3 到 rvm 进行开发。我今天大部分时间都在设置构建服务器来运行我的测试,因为我检查了对我的 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 目录中。

4

1 回答 1

2

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

require 'commandExecutor'

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

于 2013-01-27T16:20:45.137 回答