0

我有以下代码:

require 'test/unit'

class Flow < Test::Unit::TestCase
    def test_hi
        puts "Hi"
    end

    def test_working
        puts "Working"
    end

    def test_bye
        puts "Bye"
    end

    def test_tired
        puts "Tired"
    end
end

当我运行它时,它显示以下内容:

Bye
Hi
Tired
Working

查看输出,我可以猜测测试是按测试名称的字母顺序执行的(即 test_text 中文本字段的字母顺序)。

实际上,我想按照我定义的顺序执行我的测试。对于上述脚本,我想要以下输出:

Hi
Working
Bye
Tired

我怎样才能做到这一点?

4

1 回答 1

4

虽然我同意 Sergio 不应该这样做,但我通过查看 Test::Unit::TestCase 的来源发现了这一点

https://github.com/test-unit/test-unit/blob/master/lib/test/unit/testcase.rb):

    # Sets the current test order.
    #
    # Here are the available _order_:
    # [:alphabetic]
    #   Default. Tests are sorted in alphabetic order.
    # [:random]
    #   Tests are sorted in random order.
    # [:defined]
    #   Tests are sorted in defined order.
    def test_order=(order)
      @@test_orders[self] = order
    end

因此,如果您将 TestCase 的 test_order 设置为 :defined,它应该可以工作。

于 2013-06-24T11:50:51.070 回答