0

我正在尝试为测试自动化实施shoulda。我试过这段代码:

require 'test/unit'
require 'shoulda'
require 'shoulda-context'

class TestClass < Test::Unit::TestCase
  context 'Languages' do
    should 'Ruby' do
      puts 'Ruby'
    end

    should 'Java' do
      puts 'Java'
    end

    should 'Python' do
      puts 'Python'
    end
  end
end

当我执行该代码时,它会根据应该测试方法的字母顺序输出:

Java
Python
Ruby

实际上,我希望按照编写方法的顺序输出:

Ruby
Java
Python

为此,我必须在我的代码中使用什么?

4

1 回答 1

4

实际上,最好不要按特定顺序运行测试。最好以随机顺序运行它们,因为这样可以让您识别是否存在依赖于其他测试的测试。如果测试仅按特定顺序通过,则表明您做错了。

如果您仍然想这样做:

class TestClass < Test::Unit::TestCase
  context 'Languages' do
    self.test_order = :defined
    ...

见:http ://test-unit.rubyforge.org/test-unit/en/Test/Unit/TestCase.html#test_order=-class_method

于 2013-09-21T10:01:25.853 回答