【问题标题】:run Ruby Unit Tests with Buildr使用 Buildr 运行 Ruby 单元测试
【发布时间】:2014-01-11 10:03:58
【问题描述】:

我使用 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

running 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

问候菲利普

【问题讨论】:

    标签: ruby unit-testing buildr


    【解决方案1】:

    由于我对 Ruby 开发不太熟悉,涉及到 Rake,我一直在寻找错误的问题。而不是寻找:»如何使用 buildr 运行单元测试«,问题应该是»如何使用 rake 运行单元测试«,因为 buildr 是一种扩展的 Rake(类似于 »maven-ant-relationship«) .所以在 Rake 中可以做的所有事情,在 buildr 中也可以做。因此,在构建器中运行 ruby unit tests 的良好 SO 答案是 here

    此外,还可以使用 buildr 运行 RSpec's,因此有两种选择:

    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。

    测试/规范愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多