2013-01-18 4 views
5

私は現在、テストのためにRspecを使用しています。また、GuardとSporkを利便性のために使用しています。私は、Guardを終了して再起動しない限り、ランダムシードは実行間で変更されないことに気付きました。これは大きな問題ではありませんが、そうした場合は便利です。Guard/SporkでRspecで実行されるそれぞれのランダム化シードを変更できますか?

誰かが、テストを実行するたびに新しいシードを使用するように変更する方法を知っていますか?

+0

同じ問題。それぞれの実行は、 'spec_helper.rb'の標準ランダム順序設定でさえ、' seed 0でランダム化 'で終わります。あなたはこれに答えを得ましたか? – jordanpg

+0

私はSporkの代わりにSpringを使用しています(基本的には同じもの)、RubeOnRailsの答えは私にとって完璧に機能しました。 –

答えて

0

どのバージョンをお使いですか?

ガード(1.6.2)、rspec(2.13.0)を使用しています。私はスポークを使用していませんが、それは私のために種をランダム化します。

RSpec.configure do |config| 
    config.order = 'random' 
end 
+0

問題は、注文がランダム化されていないということではありません(設定は問題ありません)。それは、sporkを再起動すると新しいシードだけを生成するということです。 –

3

私はGuardfileに--order rand:$RANDOMフラグを追加しました::

guard 'rspec', zeus: true, cli: '--color --order rand:$RANDOM' do 
    watch(...) 
end 
+2

これは完璧に機能しました。ありがとう! –

2

はい、私のために、次の作品をここで

は、私は私のspec_helperに持って、関連するビットです。 spec_helper.rbに追加:

Spork.each_run do 
    RSpec.configuration.seed = srand && srand % 0xFFFF 
end 

From here

+0

このソリューションは、@ RubeOnRailsが(シード0を常に使用していなかったのに対し)私のために働いていました。おそらく私のガード・コールは、bashのような$ RANDOMを生成するシェルによって直接実行されていないでしょうか?私はRuby 2.1.4、Rails 4.0.2、Guard 2.6.1を使用しています。ログインシェルは$ RANDOMでbashを提供します。 – jackr

0

あなたは春のコンテキスト内でランダムな順序を持っているだけでなく、--seedパラメータは、この追加使用する場合:spec_helper.rb

config.seed = srand % 0xFFFF unless ARGV.any? { |arg| arg =~ /seed/ } 

を。

関連する問題