我不久前制作了一个宝石,并没有包含任何测试(对我来说很遗憾)。我已经尝试通过包括minitest来解决这个问题,但是我因为以下错误而被困在门外:
不知道如何构建任务'默认'
这是我的 Rakefile
require 'rake/testtask'
Rake::TestTask.new do |t|
t.test_files = FileList['test/*_test.rb']
end
test/unit_test.rb
require 'minitest/autorun'
class TestPackage < MiniTest::Unit::TestCase
def test
assert_equal 10, Array.new(10).size
end
end
如果我将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>'
答案 0 :(得分:20)
Rake任务总是被命名。 Rake::TestTask
任务名为test
,因此如果您运行rake test
,它将运行您的测试。
要使Rake::TestTask
成为您的默认任务,请执行以下操作:
task :default => :test
在Rakefile
中。