为什么Test :: Unit.test_order =没有按预期工作?

在Ruby中有一个问题,如何控制Test :: Unit测试的运行顺序? 并希望回答一下test_order = :defined的参考,

Test::Unit::TestCase.test_order的文档说:

设置当前测试顺序。

以下是可用订单:

  • :字母默认。 测试按字母顺序排序。
  • :random测试按随机顺序排序。
  • :已定义的测试按定义的顺序排序。

所以我认为这将按照方法定义的顺序执行测试:

 gem 'test-unit' require 'test/unit' class Mytest < Test::Unit::TestCase test_order = :defined #~ test_order = :random #~ test_order = :alphabetic #default def test_b p :b end def test_a p :a end def test_c p :c end end 

但是当我执行它(用测试单元2.4.9和2.5测试)时,我得到了字母顺序:

 Started :a .:b .:c . 

有什么问题? 我的代码中是否缺少某些内容,文档是错误的还是存在错误?

我检测到了解决方案,或者更好的是我的错:

 gem 'test-unit' require 'test/unit' class Mytest < Test::Unit::TestCase self.test_order = :defined #~ self.test_order = :random #~ self.test_order = :alphabetic #default def test_b p :b end def test_a p :a end def test_c p :c end end 

区别:我使用了test_order = :defined在我的课程中test_order = :defined 。 发生了什么:创建了一个局部变量test_order

使用self.test_order = :defined了调用方法test_order=