我现在使用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
不会抛出运行时错误,而是在屏幕上打印测试报告,这就是我想要的。
问题
如果测试失败,如何在不退出RuntimeError
的情况下使Buildr运行单元测试?
问候菲利普
答案 0 :(得分:0)
由于我不太熟悉Ruby开发,涉及Rake的内容,我一直在寻找错误的问题。而不是寻找:»如何使用buildr运行单元测试«,问题应该是»如何使用rake«运行单元测试,因为buildr是一种扩展的Rake(类似于»maven-ant-relationship«) 。所以在Rake中你可以做的一切,也可以在buildr中做。因此,在良好的SO上,在buildr中运行ruby unit tests的答案是here。
此外,可以使用buildr运行RSpec's,因此有两个选项:
project.test.using :rspec
,涉及JRuby的使用,因此必须设置JRUBY_HOME
(在我的情况下为~/.rvm/rubies/jruby-1.7.9/
),或在jruby中运行buildr。在我的情况下,这减慢了测试执行速度,因为每次需要启动一个jvm。n.b。正如答案所暗示的那样,我切换到了rspec。
快乐测试/指定!