我已将这些信息放入一个牧场,但在此重复(牧师链接http://pastie.org/private/4vprzwhllqv35egrf8jzwg)
问题出现在我自己的项目中,但我不知道我做错了什么:这是完整的输出:
$ rake test
(in /Users/me/Projects/version-three)
/Users/me/.rvm/rubies/ruby-1.9.2-rc2/bin/ruby -I"lib:test" "/Users/me/.rvm/gems/ruby-1.9.2-rc2/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "./test/test_a.rb" "./test/test_configuration.rb" "./test/test_generator_base.rb" "./test/test_lazy_attr_accessor.rb" "./test/test_output_spokesman.rb" "./test/test_path_for_executable.rb"
Test run options: --seed 28629
Loaded suite /Users/me/.rvm/gems/ruby-1.9.2-rc2/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
...............Could not find task "./test/test_a.rb".
......
Finished in 0.014943 seconds.
21 tests, 19 assertions, 0 failures, 0 errors, 0 skips
Test run options: --seed 28629
你可以看到有一个错误的Could not find task "./test/test_a.rb"
- 我添加了这个文件只是为了阻止它在我的第一个文件上进行重要的测试!
Rakefile不可能更简单,只需这样:
require 'rake/testtask'
task :default => :test
Rake::TestTask.new do |t|
t.libs << "test"
t.test_files = FileList['./test/test_*.rb']
t.verbose = true
end
我正在使用以下版本的相关工具,因为您可以看到我正在使用RVM,我在Ruby 1.8.7上看到了同样的问题。
$ rake --version
rake, version 0.8.7
$ ruby --version
ruby 1.9.2dev (2010-07-11 revision 28618) [x86_64-darwin10.4.0]
$ rvm --version
rvm 0.1.43 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]
答案 0 :(得分:0)
当需要Thor
时,似乎出现了这个问题 - 据说它是一个替代品 - 也许我需要更多地研究它,但我的一个测试是测试一个Thor支持的发电机。
我会更彻底地研究一下发生了什么!
我已经确定了(愚蠢的)问题,这个消息实际上来自Thor,我有一行如下:
def test_banner_if_starting_generator_with_no_args
::Cli::Generator.start(ARGV)
# Test the banner output here...
end
当然ARGV
被设置为由Rake的FileList汇编的列表中的第一个文件,并传递给测试加载器。
很抱歉浪费任何时间来研究这个问题。
解决方案:将ARGV
存根到[]
,因为这实际上是我正在测试的内容!