2015-02-20 1 views
1

Мои тесты, которые становятся зелеными локальными, краснеют на траверсе. Это об этом коде:Тесты не срабатывают на трассах, которые проходят локально

And I change the year to "nineteen-ninenty-seven"                   # features/step_definitions/application_steps.rb:9 
And I attempt to save the changes                       # features/step_definitions/application_steps.rb:17 
Then I should see a message indicating that the data is invalid                # features/step_definitions/application_steps.rb:26 
    expected to find text "Value must be of type integer." in "Provider configurations root name artist year" (RSpec::Expectations::ExpectationNotMetError) 
    ./features/step_definitions/application_steps.rb:27:in `/^I should see a message indicating that the data is invalid$/' 
    features/editing_resources.feature:52:in `Then I should see a message indicating that the data is invalid' 

Это в моей поддержке/capybara.rb

require 'capybara/cucumber' 
require 'capybara/poltergeist' 

Capybara.app = App.new 
Capybara.javascript_driver = :poltergeist 
Capybara.default_wait_time = 10 

Это об этом коде:

When(/^I change the year to "(.*?)"$/) do |year| 
    find('input[name="root[year]"]').set year 
end 

When(/^I attempt to save the changes$/) do 
    find('input[type=submit]') 
end 

Then(/^I should see a message indicating that the data is invalid$/) do 
    expect(page).to have_content('Value must be of type integer.') 
end 

Проблема:

Когда я бегу тесты локальные, они становятся зелеными. Я отлаживал его там. Я уверен, что код работает хорошо. Поля существуют и заполняются нужными данными. Когда я использую pry в своих локальных тестах в том смысле, что ожидаю сообщения, я 'source' (или html), и сам могу найти текст. На travis/ubuntu это не работает. Я могу подтвердить, что это не работает, потому что я связался с Трэвисом, и они дали мне виртуальную машину в течение дня, когда я дублировал проблему.

Чтобы решить проблему, я попробовал несколько вещей, я увеличил время ожидания, попробовал селен/webkit и селен с хром/firefox. Они работают на местном уровне, но я не могу заставить их работать правильно на travis.

Что я хочу достичь, так это то, что тест проверяет, видит ли пользователь сообщение, которое создается, когда поле заполнено неправильно (текст в целочисленном поле в этом примере).

Сообщение создано Json editor. https://github.com/jdorn/json-editor И выглядит в коде:

<small class="error">Value must be of type integer.</small> 

Логика объяснения, на мой взгляд: в Travis, то дом не получает новейшую версию, которая должна загружаться после активности прибудете, оформленного (как FILL_IN или набор) и локально это работает.

Надеюсь, у кого-нибудь есть объяснение и решение.

ответ

1

Хотя я не могу предоставить ответ для вашей конкретной проблемы, я могу попытаться помочь вам отладить проблему с предоставленной вами информацией.

Что касается Полтергейст:

Poltergeist позволяет делать скриншоты в определенных точках в тесте

В зависимости от ваших тестов, одна вещь, которая вам может понадобиться в некоторых шрифтов. Если вы получаете ошибки на КИ, которые не возникают в процессе развития, то попробуйте сделать скриншоты

Я хотел бы попробовать использовать page.save_screenshot до и после точек вы определили и увидеть, что различия между локальными/Travis.

EDIT: Существует также драгоценный камень для capybara, который делает скриншоты всякий раз, когда тест терпит неудачу. Найти больше информации здесь: Capybara-Screenshot

Смежные вопросы