我的项目测试分为多个文件 - test / test_1.rb和test / test_2.rb。
运行'rake test'给出:
$ rake test
ruby -I"lib:test" -I"/foo/rake-0.9.2/lib" "/foo/rake_test_loader.rb" "test/test_general.rb test/test_cv.rb"
/home/rob/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/rake_test_loader.rb:11:in `require': no such file to load -- /home/rob/src/robsyme/bioruby-chado/test/test_general.rb test/test_cv.rb (LoadError)
... #you can guess the rest
注意ruby命令中的最后一个参数:“test / test_general.rb test / test_cv.rb”
如果删除引号(将最后一个参数拆分为两个参数),则测试运行完美。
环境:
$ grep -A4 TestTask Rakefile
Rake::TestTask.new(:test) do |test|
test.libs << 'test'
test.pattern = FileList['test/**/test_*.rb']
test.verbose = true
end
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
$ gem --version
1.8.10
$ rake --version
rake, version 0.9.2
答案 0 :(得分:5)
添加了:
test.test_files = FileList ['test / test * .rb']
文件列表应该给予测试文件而不是模式。为了模式,我想你可以将模式作为字符串。
以前的回答(被误解的问题)
这就是shell的工作方式。如果要定位其中包含空格的文件名,可以引用文件名。然后它被作为一个参数传递而不是两个。
$ cat > "foo bar"
foobar
^D
$ cat foo\ bar
foobar
$ cat "foo bar"
foobar
或
$ ls "Rakefile Gemfile"
ls: Rakefile Gemfile: No such file or directory
$ ls Rakefile Gemfile
Gemfile Rakefile