2014-01-11 138 views
0

我现在正在使用buildr一段时间,但今天我遇到了一些与ruby代码单元测试有关的小问题。使用Buildr运行Ruby单元测试

所以在我的构建文件我有这行:

define "ruby-project" do 

    project.version = VERSION_NUMBER 
    project.group = GROUP 

    Rake::TestTask.new(:test_rb) do |t| 
     t.warning = true 
     t.verbose = true 
     t.test_files = FileList['test/*.rb'] 
    end 
    task test => [:test_rb] 

end 

运行buildr test实际运行测试,什么是好的。该测试实际上就是:

require 'test/unit' 

class TestFileParse < Test::Unit::TestCase 
    def test_fail 
     assert(false, 'test to fail') 
    end 
end 

正如预期的那样失败,是什么奇怪的,我是buildr与该消息退出编译:

sh: 2: Syntax error: Unterminated quoted string 
Buildr aborted! 
RuntimeError : Command failed with status (1): [/usr/bin/ruby1.9.1 -w -I"lib" -I"/var/lib/...] 

运行ruby file-with-failing-test-from-above.rp不会引发运行时错误,而是在屏幕上打印测试报告,我想要什么。

问题

我怎样才能让Buildr没有如果测试失败,并RuntimeError退出运行单元测试?

问候菲利普

回答

0

由于我不是太熟悉Ruby开发,涉及到什么耙,我一直在寻找一个错误的问题。而不是寻找:»如何用buildr运行单元测试«,这个问题应该是»如何用rake«运行单元测试,因为buildr是一种扩展Rake(类似于»maven-ant-relationship«) 。所以在Rake中可以做的所有事情都可以在buildr中完成。因此,在SO上运行ruby unit tests的SO回答是here

此外,它还可以运行RSpec's与buildr,因此人们有两种选择:

  1. 设置project.test.using :rspec,有什么涉及使用JRuby的,所以人们必须设置JRUBY_HOME(在我的情况~/.rvm/rubies/jruby-1.7.9/),或在jruby中运行buildr。在我的情况下,这减慢了测试执行速度,因为每次需要启动一个jvm。
  2. 或者可以在this manner中使用rspec's rake task。我选择这种方法,因为我的测试运行得更快而没有jvm开销。

n.b.正如答案所暗示的,我转向了rspec。

快乐测试/投射!

相关问题