按默认顺序运行一些RSpec文件

按默认顺序运行一些RSpec文件,rspec,continuous-integration,Rspec,Continuous Integration,我让我们的RSpec套件随机运行,以确保独立性和健壮性。但是,在一些情况下,我希望按顺序运行规范。我知道我可以在命令行上使用--order default,但我想将其与CI集成。我们使用TDDium for CI,我想尝试在CI服务器上继续随机运行,但要确保特定的规范文件按顺序运行 问题: 是否有任何方法可以逐个文件指定RSpec应以默认顺序运行该文件?我看到似乎有,但这似乎还没有完全成熟(我不确定它是否支持:all),我仍在努力想办法解决这个问题 讨论 而且,由于“规范应该是独立的”这一点已经

我让我们的RSpec套件随机运行,以确保独立性和健壮性。但是,在一些情况下,我希望按顺序运行规范。我知道我可以在命令行上使用
--order default
,但我想将其与CI集成。我们使用TDDium for CI,我想尝试在CI服务器上继续随机运行,但要确保特定的规范文件按顺序运行

问题: 是否有任何方法可以逐个文件指定RSpec应以默认顺序运行该文件?我看到似乎有,但这似乎还没有完全成熟(我不确定它是否支持
:all
),我仍在努力想办法解决这个问题

讨论 而且,由于“规范应该是独立的”这一点已经被否决了,所以让我陈述我的用例,试图先发制人地避免“你不应该那样做”的论点

我们有一个复杂的模型,其中系统状态的各个方面随时间而变化。我有一个分析系统,它监视着这个系统,跟踪随着时间的推移各种事物的状态变化。多亏了,我可以回到过去,创建一组相互作用的模型,然后一步一步,比如说,5天,在已知条件下,每天查看分析系统所看到的系统。具体而言,确保在系统中嵌入假设的情况下,某些计算是正确的


现在,我意识到我可以有5个单独的描述块,每个块都经历了为历史上的每5天设置单独条件的过程,但对我来说,在这种状态下,通过时间和观察条件的变化更有意义。效率更高,与系统中实际发生的事情联系更紧密。我知道我可以在这里和那里模拟各种响应,我们也可以这样做,但我感兴趣的是逐步实现基本系统和分析系统之间的“实时”交互。

我应该只阅读规范,而不是来自数据库的代码。这很清楚

给定自定义\u订购的\u spec.rb:

    RSpec.configure do |config|
      config.order_groups_and_examples do |list|
        list.sort_by { |item| item.description }
      end
    end

    describe 'group B' do
      specify('group B example D')  {}
      specify('group B example B')  {}
      specify('group B example A')  {}
      specify('group B example C')  {}
    end

    describe 'group A' do
      specify('group A example 1')  {}
    end
组和组内的示例都将按说明排序。此外,看起来您可以调用
config.order\u组
config.order\u示例

下面是我对它的一些更详细的描述。

当前(3.5)Rspec不再具有顺序\u组\u和\u示例方法。相反,您可以:


博客帖子链接会导致404@EricFrancis谢谢你。正在移动主机,但忘记实际导入!哦,又回到404了。Archive.org版本:
RSpec.configure do |config|
  config.register_ordering :alphabetical do |list|
    list.sort_by { |item| item.description }
  end
end
RSpec.context "Test in alphabetic order", :order => :alphabetical  do
  describe 'group B' do
    specify('group B example D')  {}
    specify('group B example B')  {}
    specify('group B example A')  {}
    specify('group B example C')  {}
  end

  describe 'group A' do
    specify('group A example 1')  {}
  end
end