원격 서버에 대해 실행되는 rspec 및 capybara를 사용하여 일련의 셀렌 테스트를 생성 한 프로젝트가 있습니다. 즉,이 테스트는 애플리케이션과 동일한 Rails 인스턴스/환경에서 실행되지 않으므로 해당 애플리케이션 레이크 작업에 대한 액세스 권한이 없습니다.셀렌 테스트를 실행하기 전에 원격 DB 청소 방법에 대한 아이디어
우리가 알아 내려고하는 것은 매번 실행하기 전에 데이터베이스를 정리/복원하는 좋은 방법입니다. Jenkins 빌드 작업을 통해 응용 프로그램을 배포 한 다음 성공하면 셀렌 테스트를 시작합니다. 우리는 Selenium2를 사용하고 테스트는 SeleniumServer (이전의 Selenium Grid)를 통해 실행됩니다. DB를 복원하기 위해 응용 프로그램을 배포 할 때 Cap 작업을 시작하는 기능이 있습니다.
우리가해야 할 마이그레이션 수를 최소화하면서 (가장 최근 마이그레이션으로 만 마이그레이션하는 것이 좋음) 복원을 수행하고 필요한 데이터로 데이터베이스를 미리 시드하는 방법에 대한 질문이 있습니다.
어떤 흥미로운 일들이 우리의 설치에 대한주의 : 우리는 그것의하지 연주회 씨앗이되는 정보의 공정한 조금을 가지고 있지만, 당신은 씨앗 파일에 입력 할 것보다 더 우리가 모두 완벽하게 파티션 된 데이터베이스가 공개 및 비공개 스키마 우리는 멀티 테넌트 (multi-tenant) 응용 프로그램을 가지고 있으며 개인 스키마를 사용하여 데이터 액세스를 격리합니다.
그래서 다른 사람들이이 문제를 해결하는 데 사용한 몇 가지 방법은 무엇입니까?
대부분의 사람들은이 문제에 대해 데이터베이스 청소기를 사용한다고 생각하지만 처음에는 셀레늄 테스트가 Rails 환경 외부에서 실행되므로 데이터베이스 클리너가 작동하지 않습니다.
을 이동하고자 할 때
그런 다음, 당신은 오이 환경에서 데이터베이스에 원격 연결을 열 수 있습니다 예를 들어 데이터베이스 청소기로 db를 청소하거나 계획 SQL 쿼리를 실행하는 것과 같은 원하는 작업을 수행 할 수 있습니다. – luacassus