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