Witam, jakie polecacie oprócz poltergeist ? Ten wspomniany jest koszmarnie wolny i przy wiekszym zestwie testów lubi się wywalić losowo przy czym ten sam test uruchamiany osobno przechodzi.
Polecam capybara - webkit od thoughtbot. Stabilniejszy, ale czy będzie dużo szybszy, to nie wiem, bo to jednak testy z JS.
w moim wypadku poltergergeist był szybszy od webkita
fakt losowości w przechodzeniu testów, wynika z tego, że używasz renderowania strony za pomocą js i w nieodpowiedni sposób oczekujesz na pojawienie się nowej zawartości
Update phantomjs do wersji 2.0 dał solidnego kopa. Testy z kilkunastu minut zeszły do 4min! Jest też dużo mniej błędów wsród tych losowych.
mała poprawka, 1/3 zaoszczędonego czasu to ten hack w spec/support
module Paperclip
def self.run cmd, arguments = "", interpolation_values = {}, local_options = {}
cmd == 'convert' ? nil : super
end
end
class Paperclip::Attachment
def post_process
end
end
Jeszcze tylko ten helper czasem losowo wywala test, jakieś pomysły żeby to zoptymalizować ?
Jest to spec helper do pickadate.js który wybiera dzień i czasem (bardzo rzadko) wywal się na ostatniej linii, trafia widać na moment gdy jeszcze się modal nie “schował”
def pickadate(input, date)
find(input).click
within 'div.picker--opened' do
if select_year = find('select.picker__select--year')
select_year.select(date.year)
end
if select_month = find('select.picker__select--month')
select_month.select(date.strftime("%B"))
end
timestamp = date.to_time.to_i * 1000
find("div[data-pick = '#{timestamp}']").click
end
expect(page).to have_xpath "//div[@class = 'picker' and @aria-hidden = 'true']"
end