0

그래서 Gitlab CI가 실행 중입니다. 프로젝트와 IM에서 capybara/poltergeist 통합 테스트를 실행하려고 시도하고 있지만 CI가 rspec 명령을 실행하면 서버가 작동하지 않습니다. 실제로 달리기.Gitlab CI 스크립트를 사용하여 레일 서버를 실행 하시겠습니까?

그래서 내 CI.yaml 파일에 "Bundle exec rails s"를 넣어야합니까?

rspec 명령 바로 직전입니까?

참고로이 파일은 내 CI 파일입니다. 또한

before_script: 
    - rbenv install --skip-existing `cat .ruby-version` 
    - bundle install 
    - RAILS_ENV=test bundle exec rake db:drop db:create db:migrate db:seed 

rspec: 
    script: 
    - bundle exec rspec . --tag type:feature 
    tags: 
    - ruby 

측면 질문 : 빌드 완료 및 테스트가 완료되면 ... 나는 셧다운 얼마나 레일 서버를 실행했다. 아니면 자동으로 끄겠습니까?

답변

1

일반적으로 Capybara는 앱의 자체 인스턴스를 시작하고 완료되면 종료합니다. Capybara.server_host가 바인딩 할 수있는 인터페이스로 설정되어 있는지 확인하고 필요한 경우 Capybara.app_host도 조정해야합니다.

+0

내가 생각한 것을 보았지만 "번들 exec 레일즈"를하지 않으면 작동하지 않습니다. (호스트를 찾을 수 없다고 말하면서) (app_host를 방문하면 ("/") localhost : 3000으로 설정합니다. 또한 참조 용으로 "Capybara.run_server = false"를 설정하지 않고 Rspec 테스트 btw로 실행합니다. 또한 – msmith1114

+0

server_host 아래에서 실행합니다. Capybara가 서버를 기본값으로 바인딩합니다. 127.0.0.1 (ipv6의 세계에서) localhost로 해결되지 않을 수도 있습니다 .Capybara.server_host를 localhost로 변경하거나 app_host를 변경해보십시오. 추가로 Capybara.app_host (설정되어있는 경우)는 전체 URI 여야하므로 http : // localhost 또는 http://127.0.0.1 (하지만 server_host를 변경하고 app_host를 먼저 설정하지 마십시오.) 레일스는 기본적으로 3000에서 dev 서버를 시작하지만 capybara가 3000 번 포트에서 서버를 시작할 가능성은 거의 없습니다. –

+0

그럼 app host를 (localhost : 3000까지) 설정 했으므로 server_host도 설정하셨습니까? 무엇을 바꾸어야합니까? (어쩌면 당신의 말을 혼동스럽게) – msmith1114