2013-01-18 8 views
5

Obecnie używam Rspec do testowania, razem z Guard i Spork dla wygody. Zauważyłem, że jeśli nie wyjdę i nie uruchomię Ochrony, losowy materiał siewny nie zmienia się między biegami. Chociaż nie jest to poważny problem, byłoby to przydatne, gdyby tak się stało.Czy mogę zmienić ziarno do randomizacji, każde uruchomienie w Rspec z Guard/Spork?

Ktoś wie, jak zmienić rzeczy tak, aby używał nowego ziarna za każdym razem, gdy uruchamia testy?

+0

Ten sam problem. Każdy przebieg kończy się na 'Randomizowane z seedem 0', nawet przy standardowej konfiguracji losowej w' spec_helper.rb'. Czy kiedykolwiek dostałeś odpowiedź na to pytanie? – jordanpg

+0

Używam Spring zamiast Spork (w zasadzie to samo), a odpowiedź RubeOnRails działa idealnie. –

Odpowiedz

0

Z jakich wersji korzystasz?

Używam strażnika (1.6.2), rspec (2.13.0). Nie używam sporków, ale to dla mnie losowanie nasion.

Oto odnośny bit, który mam w spec_helper:

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

Kwestia nie polega na tym, że nie wybiera losowo kolejności (konfiguracja jest w porządku), ponieważ generuje nowy seed tylko wtedy, gdy ponownie uruchomię obsługę. –

3

I dodaje flagę --order rand:$RANDOM do mojego Guardfile:

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

To działało idealnie. Dzięki! –

2

Tak, następujące prace dla mnie. Dodaj do spec_helper.rb:

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

From here.

+0

To rozwiązanie działało dla mnie (różne "Randomizowane z nasionami" za każdym razem), podczas gdy @ RubeOnRails's nie (zawsze używane ziarno 0). Być może moje wywołanie strażnika nie jest uruchamiane bezpośrednio przez powłokę generującą $ RANDOM, taką jak bash? Używam Ruby 2.1.4, Rails 4.0.2, Guard 2.6.1; powłoka logowania jest warta $ RANDOM-zapewniając bash. – jackr

0

Jeśli chcesz mieć losowej kolejności w kontekście wiosennej ale również użyć parametru --seed dodać to:

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

do spec_helper.rb.

Powiązane problemy