Мои тесты, которые становятся зелеными локальными, краснеют на траверсе. Это об этом коде:Тесты не срабатывают на трассах, которые проходят локально
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 или набор) и локально это работает.
Надеюсь, у кого-нибудь есть объяснение и решение.