2013-01-18 8 views
5

Attualmente sto usando Rspec per i test, insieme a Guard e Spork per comodità. Ho notato che a meno che non esci e riavvii Guard, il seed casuale non cambia tra le esecuzioni. Anche se questo non è un grosso problema, sarebbe utile se lo facesse.Posso cambiare il seme di randomizzazione ogni esecuzione in Rspec con Guard/Spork?

Qualcuno sa di un modo per cambiare le cose in modo che usi un nuovo seme ogni volta che esegue i test ??

+0

Stesso problema. Ogni run termina con 'Randomized with seed 0', anche con la configurazione di ordine casuale standard in' spec_helper.rb'. Hai mai avuto una risposta a questo? – jordanpg

+0

Uso Spring invece di Spork (fondamentalmente la stessa cosa) e la risposta di RubeOnRails ha funzionato perfettamente per me. –

risposta

0

Quali versioni stai utilizzando?

Sto utilizzando la protezione (1.6.2), rspec (2.13.0). Non sto usando lo spork ma randomizza il seme per me.

Ecco il bit rilevante che ho nel mio spec_helper:

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

Il problema non è che non randomizzi l'ordine (la configurazione va bene), è che genera un nuovo seed solo se riavvio spork. –

3

ho aggiunto la bandiera --order rand:$RANDOM alla mia Guardfile:

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

Che ha funzionato perfettamente. Grazie! –

2

Sì, i seguenti lavori per me. Aggiungere al spec_helper.rb:

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

From here.

+0

Questa soluzione ha funzionato per me (diversa "Randomized with seed" ogni volta) mentre @ RubeOnRails no (sempre usato seed 0). Forse l'invocazione della mia guardia non viene eseguita direttamente da una shell generatrice di $ RANDOM come bash? Uso Ruby 2.1.4, Rails 4.0.2, Guard 2.6.1; la shell di login è $ RANDOM che fornisce bash. – jackr

0

Se si desidera avere ordine casuale nel contesto primavera, ma anche utilizzare il parametro --seed aggiungere questo:

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

a spec_helper.rb.

Problemi correlati