2016-12-21 5 views
-1

Rails 애플리케이션의 통합 테스트를 작성하려고합니다. GUI는 꽤 복잡하기 때문에 모든 AJAX 요청과 DOM 렌더링이 올바르게 작동하는지 확인하기 위해 (컨트롤러 또는 유닛 테스트와는 달리) 많은 통합 테스트가 필요합니다.Capybara에서 CSS와 JS를로드하는 방법은 무엇입니까?

나는 Capybara, Capybara-webkit, Poltergeist 및 Chromedriver를 시도했지만 그 중 어느 것도 내 CSS 또는 document.ready 기능을 실행하지 않습니다.

많은 양의 책을 읽고 많은 해결책을 시도했지만 성공하지 못했습니다. 자산 파이프 라인과 관련이있을 수 있습니다.

어디서 문제를 해결할 수 있는지 잘 모르겠습니다.

감사합니다, 루이스 내 경우

답변

3

, 그것은 자산 파이프 라인과 함께 할 수있는 뭔가가 않았다.

test.rb에서 자산 연결을 해제 한 후에도 문제가 없습니다.

test.rb :

# Debug mode disables concatenation and preprocessing of assets. 
    # This option may cause significant delays in view rendering with a large 
    # number of complex assets. 
    config.assets.debug = true 

spec_helper :

Capybara.register_driver :chrome do |app| 
    Capybara::Selenium::Driver.new(app, :browser => :chrome) 
end 

Capybara.javascript_driver = :chrome 
Capybara.asset_host = "http://localhost:3000" 

결과 순위. 크롬 드라 이버를 찾으려면 chromedriver로 전환해야했습니다. 실제로 테스트 드라이버가 실제 브라우저에서 작업을 수행하고 Chrome 자바 스크립트 콘솔을 열어 볼 수 있다는 사실에 의존했습니다 (capybara가 디버거에서 일시 중지 된 동안). 무슨 일이 있었는지 보아라.

+1

이전 파일 중 하나가 파일이 연결되는 테스트/생성 모드에서 나머지 파일을 평가하지 못하게하는 오류를 발생시키는 연결을 비활성화해야하는 경우 - dev console in 개발 모드를 선택하고 표시된 모든 JS 오류를 수정하십시오. –

+0

조언 주셔서 감사합니다! dev에 오류가 없기 때문에 Capybara가 js 오류 (js : true 및 js_errors : true)를 표시해야한다고 생각했지만 아무 것도 나타나지 않습니다. – Louise

+0

IIRC js_errors는 capybara-webkit이 아닌 Poltergeist 옵션입니다. capybara-webkit에서 JS에서 발생한 오류를 확인하려면'page.driver.error_messages'를 확인해야합니다. capybara-webkit이 지원하지 않는 ES6 기능과 관련된 일부 오류가 표시됩니다. 지원 –