Я подтолкнул свой проект к героку, и после этого мои тесты capybara перестали работать. Я думаю, проблема кроется в активах rake: precompile, потому что это, кажется, единственная команда, которая каким-то образом влияет на мой локальный код.Rails, Capybara: Тесты больше не работают после рейк-активов: precompile
В то время как мои тесты работали, как и ожидалось, каждый тест теперь возвращает ту же ошибку:
Capybara::Poltergeist::MouseEventFailed:
Firing a click at co-ordinates [91.5, 69.5] failed. Poltergeist
detected another element with CSS selector 'html body.container article.ng-scope div.ng-scope nav-bar.ng-scope nav.navbar.navbar-fixed-top.navbar-inverse div.container-fluid div#bs-example-navbar-collapse-2.collapse.navbar-collapse' at this position.
It may be overlapping the element you are trying to interact with. If you don't care about overlapping elements, try using node.trigger('click').
Сначала я подумал, чтобы сделать тесты снова работать, я запускаю грабли активов: чистый, чтобы удалить активы , Но ошибки остаются.
Затем я удалил публичный файл с помощью активов. Но ошибки остаются прежними.
Кто-нибудь знает, как я могу исправить эту проблему?
EDIT 1:
Вот пример одного из моих тестов:
scenario "User adds a comment" do
anotheruser = User.create!(email: "[email protected]",
password: "abcdefgh123",
password_confirmation: "abcdefgh123")
argumentation = Argumentation.create(title: "Metaphysik und Natur", content: "Man könnte meinen, Metaphysik und Naturwissenschaften haben etwas gemeinsam.", user_id: anotheruser.id)
argument = Argument.create(title: "Naturwissenschaft als Fortsetzung der Metaphysik", content:"Es gibt Leute, die sagen, Wissenschaft ist die Beantwortung von metaphysischen Fragen.", argumentation_id: argumentation.id, place: 1)
log_in(email, password)
visit "/argumentation#!/" + argumentation.id.to_s
fill_in "argumentcommenttitle", with: "Das ist mein Kommentar dazu!"
fill_in "argumentcomment", with: "Die Argumentation ist gültig, doch sind die Prämissen falsch"
click_button "Kommentar erstellen"
expect(page).to have_content("Das ist mein Kommentar dazu!")
expect(page).to have_content("Die Argumentation ist gültig, doch sind die Prämissen falsch")
end
EDIT 2:
commentor попросил скриншота, здесь:
И комментарий прав, проблема, похоже, не в том, что касается рейк-активов: прекомпиляция, а другая. Спасибо за подсказку! (Мне интересно, хотя, почему реки активы:. Прекомпиляция влияет на размере экрана в водосвинке
Любопытный.Я бы Capybara/Poltergeist написал несколько скриншотов, чтобы увидеть, что он «видит». – Wukerplank
Вам не нужно запускать 'rake assets: precompile', если вы [настроили конвейер активов на h eroku правильно] (https://devcenter.heroku.com/articles/rails-asset-pipeline#the-rails-4-asset-pipeline). Heroku будет делать это в случае фиксации сообщения - гораздо лучшее решение, которое устраняет плохие развертывания, когда вы забыли скомпилировать активы и привели к меньшему сбою в истории git. – max
@Wukerplank Можете ли вы написать ответ, чтобы я мог принять его? Спасибо за ваше предложение. Или я должен удалить свой вопрос? – Metaphysiker