2010-07-31 60 views
2

我已经把这个信息放入了一个馅饼,但在这里重复( pastie链接http://pastie.org/private/4vprzwhllqv35egrf8jzwg耙测试问题...耙报告“找不到任务./test/whatever-my-first-test-file-is.rb”

的问题出现了在我自己的项目,但我不知道我做错了什么:这里是完整的输出:

$ 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" - 我添加了这个文件,仅仅是为了阻止它在我的第一个文件上窒息而重要的测试!

的Rake文件简单得不能再简单,只是这样的:

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 ([email protected]) [http://rvm.beginrescueend.com/] 
+0

这很奇怪。即使您的摘录正是文档中的内容。我会尝试省略't.libs <<“test”'行,并将其默认为'lib'目录。 – 2010-07-31 16:03:13

+0

除非你的代码在其他地方出现奇怪的事情。 – 2010-07-31 16:07:02

+0

布莱恩,如果我删除所有自定义选项,并依靠默认值,我有完全相同的行为:( – 2010-07-31 16:09:06

回答

0

看来需要Thor当这个问题出现了 - 这是一个耙子更换,按说 - 也许我需要考虑它更多,但我的测试之一是测试雷神支持发生器。

我会更深入地研究发生了什么!

我已经确定了(愚蠢)的问题,该消息实际上是走出托尔的,我有一条线,上面写着这样的:

def test_banner_if_starting_generator_with_no_args 
    ::Cli::Generator.start(ARGV) 
    # Test the banner output here... 
    end 

当然ARGV的,被设定为第一个文件中该列表由Rake的FileList汇编并传递给测试加载器。

对不起,浪费任何人的时间谁看着这一点。

解决方案:将ARGV存根至[],因为这正是我正在测试的内容!