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 に答える