2017-10-17 1 views
0

새로운 Rails 5.1 시스템 테스트에서 Puma 서버 (Rails 기본값)를 사용하는 방법이 있는지 궁금합니다.Rails 5.1 Puma에서 시스템 테스트를 실행 하시겠습니까?

지금 우리의 모든 프로젝트에서 우리는 tiny_tds를 사용하지만 Capybara/Selenium으로 5.1 시스템 테스트를 시도했지만 Puma를 설치/실행하지 않았기 때문에 실패합니다.

설명서를 살펴본 결과 사용하려는 서버 유형을 선언하는 데 아무 것도 표시되지 않았습니다. Puma가 그렇게 할 수 있는지 알 수 없도록 SQL Server 데이터베이스에 연결하는 중이었습니다 (처음에는 tiny_tds를 사용하는 이유 일 수 있습니다).

답변

1

데이터베이스 어댑터와 랙 웹 서버가 매우 다른 것을 혼란스럽게합니다.

푸마 (예 : Webrick, Thin, Unicorn 등)는 일반적인 용도의 웹 서버입니다 (Rack). 그것은 앉아서 vistors로부터 들어오는 요청을 기다리고 환경과 요청을 포함하는 해시로 호출하여 Rails 응용 프로그램과 같은 응용 프로그램에 요청을 보냅니다. 응용 프로그램은 응답을 포함하는 배열을 반환합니다. 서버가 방문자에게 다시 보냅니다.

tiny_tds은 데이터베이스 어댑터입니다. 응용 프로그램을 데이터베이스에 연결하는 데 사용됩니다. 웹 서버는 애플리케이션이 요청으로부터 응답을 생성하는 방법을 거의 완전히 무시하고있다. 여기에는 사용되는 데이터베이스가 포함됩니다.

레일즈 5에서는 대부분의 서버가 구성을 필요로하지 않습니다. gemfile에 gem을 추가하고 bundle install을 실행하기 만하면됩니다. 별도의 설치 단계가 필요 없습니다.

이전의 경우가 아니기 때문에 구성을 필요로하지 않는다는 유일한 장점이있는 서버 인 Webrick이 기본값이었습니다. Webrick과 달리 푸마는 이제 생산에 적합합니다.

다른 환경에서 다른 서버를 사용하는 것은 좋은 생각이 아닙니다. 이는 아이디어가 (dev/prod parity)에 위배되기 때문입니다. 귀하의 dev & 테스트 환경은 가능한 한 프로덕션 환경에서 끝나기 전에 버그를 잡을 수 있도록 배포 대상에 근접해야합니다. 즉, 동일한 서버, 동일한 데이터베이스 등을 실행해야 함을 의미합니다.

테스트 스위트의 각 부분에 대한 별도의 테스트 서버를 실행하면 진정한 어리석은 일처럼 느껴질 수 있습니다. 프레임 워크를 비트로 해킹하지 않아도 가능합니다.

을 백엔드로 사용할 수있는 activerecord-sqlserver-adapter이 있습니다.

+0

그럼에도 불구하고 나는 여전히 퓨마를 보석 파일에 넣어야 할 필요가 있습니까? 지금은 기본값이더라도? 이 프로젝트 gemfile (def. 5.1 rails 프로젝트)에 포함되지 않은 것 같습니다. – msmith1114

+0

Rails 5.1로 앱을 생성 할 때 Puma가 gemfile에 포함됩니다. 'rails new'를 디폴트로 실행하면 번들 설치가 실행되어 설치되어야합니다. 방금 테스트 했어. – max

+0

그러나 예. puma를 사용하려면 gemfile에 gem을 추가하고 번들 설치를 실행하십시오. – max