2011-09-15 3 views
6

우리는 Rails 3 프로젝트와 Capybara/RSpec을 사용하여 테스트하고 있습니다. 문제는 준비 및 프로덕션 환경이 다소 다릅니다. 때로는 테스트가 잘 실행되고 준비에 문제가 없지만 프로덕션에서는 중단됩니다.레일 : 테스트 생산

예를 들어 파일 전송을 위해 Rack :: File을 사용하는 미들웨어를 추가했습니다. 응용 프로그램은 Apache에서 작동하는 헤더 'X-Sendfile'을 보냈지 만 Nginx는 'X-Accel-Redirect'를 기대합니다.

생산에 들어갈 때 배터리 테스트를 실행하는 가장 좋은 방법을 찾고 있습니다. 아무도이 짓을 한거야? 이상적으로는 프로덕션 서버 자체에서 테스트를 실행해서는 안됩니다.

테스트는 기본적으로 제품의 핵심 기능을 다루며 현재 실행중인 테스트와 다를 수 있습니다.

덕분에 내가하고 결국 무엇

+2

어려운 방법으로 배웠던 것 중 하나는 생산과 동일한 환경에 코드를 배포하는 것입니다. Nginx 용 아파치 서버를 바꿀 수 있습니까? 보통 프로덕션 (OS 현명)과 동일한 구성으로 VM을 구성하고 거기에 응용 프로그램을 배포/테스트/실행합니다. – Augusto

+0

나는 이것이 이상적인 상황이 될 것이라는데 동의하지만, 우리 시스템 관리자는 가까운 장래에 시간이 없다. 또한, 우리는 정확히 생산과 같을 수 있을지 확신하지 못합니다. – gmalette

+1

조립할 수 있습니까? 동일한 버전의 OS 및 패치 레벨로 VMware Player 또는 BusyBox를 설치하십시오. '동일하다'는 말은 가능한 한 유사하므로이 유형의 시나리오를 테스트 할 수 있습니다. 나는 당신이 당신의 시간을 필요로하지 않을 것이라는 이점으로 당신에게 당신에게 손을달라고 sysadmin에게 요청한다면, 그는 동의 할 것이라고 확신한다. 그것은 당신에게 어떤 '가장자리'사례를 테스트 할 수있는 자유를 주며, 도움 센터가 아닌 실제 업무를 수행하도록 sysadmin을 해방 할 것입니다 ... 나는 당신이 그/그녀를 설득 할 수 있다고 확신합니다! – Augusto

답변

6

많은 읽기 전용 한 production_test 환경에서 RSpec에 테스트의 또 다른 세트 데이터베이스에 액세스 할 수 있습니다. capybara-webkit 드라이버를 사용하고 각 테스트는 해당 테스트의 전체 URL을 방문하여 시작됩니다.

관련 문제