2017-01-27 9 views
0

Я подтолкнул свой проект к героку, и после этого мои тесты 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 попросил скриншота, здесь:

И комментарий прав, проблема, похоже, не в том, что касается рейк-активов: прекомпиляция, а другая. Спасибо за подсказку! (Мне интересно, хотя, почему реки активы:. Прекомпиляция влияет на размере экрана в водосвинке

enter image description here

+0

Любопытный.Я бы Capybara/Poltergeist написал несколько скриншотов, чтобы увидеть, что он «видит». – Wukerplank

+0

Вам не нужно запускать 'rake assets: precompile', если вы [настроили конвейер активов на h eroku правильно] (https://devcenter.heroku.com/articles/rails-asset-pipeline#the-rails-4-asset-pipeline). Heroku будет делать это в случае фиксации сообщения - гораздо лучшее решение, которое устраняет плохие развертывания, когда вы забыли скомпилировать активы и привели к меньшему сбою в истории git. – max

+0

@Wukerplank Можете ли вы написать ответ, чтобы я мог принять его? Спасибо за ваше предложение. Или я должен удалить свой вопрос? – Metaphysiker

ответ

1

Эта строка в журнале ошибок сделала мне любопытно:

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'). 

Я предлагаю у Capybara/Poltergeist есть несколько скриншотов, чтобы увидеть, что он «видит».