为什么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=
。