Ruby 是否应该按照定义的顺序执行LDA语句?

Ruby 是否应该按照定义的顺序执行LDA语句?,ruby,unit-testing,testunit,shoulda,Ruby,Unit Testing,Testunit,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

我正在尝试实现测试自动化。我尝试了以下代码:

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
实际上,我希望按照我编写方法的顺序输出:

Ruby
Java
Python

要做到这一点,我必须在代码中使用什么?

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

如果您仍然想这样做:

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

请参阅:

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

如果您仍然想这样做:

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

请参阅:

我会使用“最好不要运行”。)谢谢斯皮克曼。我试过你的解决办法。但它不起作用。我把test\u order=:定义在我上面的代码中,仍然应该按照字母顺序执行测试方法。我的错误,请尝试
self.test\u order=:defined
。现在,它为TestClass:Class(NoMethodError)抛出“`”:undefined method
test\u order=”
现在,我还有一个问题,此顺序不特定于
should
库。这里,它与
testunit
相关。我说的对吗?你用的是什么版本的ruby<代码>测试顺序
在1.8中不存在。请使用“最好不要运行”。)谢谢斯皮克曼。我试过你的解决办法。但它不起作用。我把test\u order=:定义在我上面的代码中,仍然应该按照字母顺序执行测试方法。我的错误,请尝试
self.test\u order=:defined
。现在,它为TestClass:Class(NoMethodError)抛出“`”:undefined method
test\u order=”
现在,我还有一个问题,此顺序不特定于
should
库。这里,它与
testunit
相关。我说的对吗?你用的是什么版本的ruby<代码>测试顺序
在1.8.x中不存在