2011-05-03 4 views
5

두 개의 grails 응용 프로그램이 있습니다 (AB).2 층 웹 응용 프로그램을 한 번에 통합 테스트합니까?

A은 명시 적으로 REST 호출을 B으로 지정하며,이 작동 방식을 자동으로 알고 싶습니다. 전통적인 Grails 통합 테스트 모델에서는 한 번에 하나의 인스턴스 만 끌어 올 수 있습니다. 내 빌드 서버로 jenkins을 사용하고 있지만 젠킨스가 지원하는지 확실하지 않은 두 시스템을 모두 배포하고 로컬에서 테스트를 실행해야하는 것처럼 보입니다.

B을 사용하여 A의 전체 통합 기능 테스트를 수행하는 가장 좋은 방법은 무엇입니까?

답변

0

이것은 grails 나 Jenkins에게만 국한되지는 않지만 할 수있는 일이 여기에 있습니다.

응용 프로그램을 배포 할 수있는 기능 테스트 서버를 설정하십시오. 프로젝트 A을 SCM 변경 사항에 대해 폴링하고 서버 A에 배포하고 프로젝트 B을 SCM 변경 사항으로 폴링하고 서버 B에 배포하는 작업 하나를 생성하는 Jenkins 작업을 하나 만듭니다.

결합 된 시스템에 대해 기능 테스트를 실행하는 다운 스트림 빌드 C을 만듭니다. 여기서는 두 데이터베이스 중 하나를 부트 스트랩하지 않으려 고하므로 통합 테스트 단계를 사용하지 마십시오. 여기서 셀레늄과 같은 것을 사용합니다. 다운 스트림 빌드에서는 업스트림 빌드 AB을 모두 차단하고 모든 업스트림 빌드에서는 블록 C을 차단하십시오.

그런 식으로 테스트 실행 도중에 서버가 재배포되지 않습니다.

통합 테스트의 경우 B은 데이터베이스 나 LDAP 서버 또는 다른 어떤 웹 서비스와 유사하다고 상상해보십시오. 완전한 통합 테스트를 원한다면, 테스트 실행을위한 서버를 설치하고 실행할 수 있습니다. 똑같이하십시오. B 빌드 또는 다른 빌드를 사용하여 B 서버에 대해 명확하게 알고있는 통합 테스트 작업을 만듭니다.

0

성공적으로 빌드 한 후 jenkins를 사용하여 컨테이너에 응용 프로그램을 배포하십시오. 일부 환경 속성이나 config를 가지고있어 앱 A에 앱 B의 URL을 설정합니다.

관련 문제