Rake不知道如何构建任务:默认或最小

mic*_*ael 15 ruby rake minitest

我不久前制作了一颗宝石,并没有包括任何测试(对我来说很遗憾).我已经尝试通过包括minitest来解决这个问题,但是我因为以下错误而被困在门外:

不知道如何构建任务'默认'

这是我的Rakefile

require 'rake/testtask'

Rake::TestTask.new do |t|
  t.test_files = FileList['test/*_test.rb']
end
Run Code Online (Sandbox Code Playgroud)

和虚拟文件 test/unit_test.rb

require 'minitest/autorun'

class TestPackage < MiniTest::Unit::TestCase

  def test
    assert_equal 10, Array.new(10).size
  end
end
Run Code Online (Sandbox Code Playgroud)

如果我更改Rakefile以包含task :default => 'minitest'更改的错误消息Don't know how to build task 'minitest'

rake --trace似乎只是将我引回到处理任务调用的Rake gem的部分.没有我能看到的线索:

~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/task_manager.rb:49:in `[]'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:115:in `invoke_task'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:94:in `block (2 levels) in top_level'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:94:in `each'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:94:in `block in top_level'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:88:in `top_level'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:66:in `block in run'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:133:in `standard_exception_handling'
~/.rbenv/versions/1.9.3-p286/lib/ruby/1.9.1/rake/application.rb:63:in `run'
~/.rbenv/versions/1.9.3-p286/bin/rake:32:in `<main>'
Run Code Online (Sandbox Code Playgroud)

Cas*_*per 20

Rake任务总是被命名.该Rake::TestTask任务被命名test,所以如果你运行rake test它会运行你的测试.

要使Rake::TestTask您的默认任务只包括:

task :default => :test
Run Code Online (Sandbox Code Playgroud)

在你的Rakefile.

http://rake.rubyforge.org/Rake/TestTask.html