【发布时间】:2011-11-12 19:41:16
【问题描述】:
我的项目测试被分成多个文件 - 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"
如果我删除引号(将最后一个参数分成两个参数),测试会完美运行。
- 为什么 rake 的测试运行程序会将这两个文件组合在一起 唯一的论点?
- 我在 rake 测试中做错了什么吗 设置?
环境:
$ 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
【问题讨论】:
-
你有一个不寻常的外壳吗?还是非标准的 $IFS 变量?
-
test.pattern.inspect 的值也可能有帮助
-
@sunkencity 明白了。我在使用 test.pattern = FileList... 而我应该使用 test.test_files = FileList...