메이븐에서 유닛 테스트를 실행하기 위한 임베디드 데이터베이스로 오라클을 사용하는 방법은 무엇입니까?
prod/test/qa 데이터베이스가 Oracle 전용인 애플리케이션이 있습니다.또한 SQL 쿼리가 Oracle 전용인 것으로 의심됩니다.안타깝게도, 이 애플리케이션은 단위 테스트에서 두 번째가 아닙니다.
따라서 특히 검색 구성 요소(테이블 생성을 포함하여 많은 Oracle 작업을 수행함)와 관련하여 유닛 테스트를 구현하고자 합니다.
일반적으로 테스트를 실행하려면 내장형 데이터베이스(예: HSQL)를 시작하고 해당 데이터베이스에서 테스트를 실행한 다음 테스트가 끝나면 페이드가 사라지도록 합니다.
이 애플리케이션의 표준화 수준에 대한 확신이 부족하기 때문에 Oracle 데이터베이스에서 테스트를 실행하고 싶습니다.따라서 테스트가 시작되면 오라클 데이터베이스를 시작하고 테스트 데이터로 채우고 테스트 종료 시 중지하고 싶습니다.제가 어떻게 그것을 놀라운 맥락에서 할 수 있을까요?
오라클을 원하는 것은 이해하지만 오라클 모드 플래그를 사용하여 h2를 사용해 볼 수도 있습니다.
jdbc:h2:~/test;MODE=Oracle
저는 대부분의 프로젝트에서 동일한 요구사항을 가지고 있으며, 이는 제가 찾은 Oracle과 가장 유사합니다.누락된 소수의 함수에 대한 별칭을 정의할 수 있습니다.
exec-maven-plugin을 사용하여 전체 오라클 인스턴스를 포함하여 Maven 수명 주기 동안 모든 응용 프로그램을 시작할 수 있습니다.그러나 여전히 빌더 등에 설치해야 하므로 솔루션이 상당히 복잡합니다.
그래서 우리가 다른 프로젝트에서 한 일은 다음과 같습니다.
- 고유한 빌드 이름을 Maven 속성으로 정의합니다(로컬 빌드의 경우 기본 사용자 이름으로, CI에서 다음을 통해 제공).
-D
예: Bamboo에서 빌드 계획 키와 번호를 포함할 수 있습니다.) - 인프라의 공유 오라클 인스턴스에 연결
- 정의된 빌드 이름을 기반으로 새 구성표 생성
- DDL로 새 빈 구성표 업데이트(프로덕션에서는 Flyway를 사용하므로 이 부분은 쉽습니다)
- 통합 테스트 실행
- 통합 후 테스트 단계에서 체계 삭제(빌드를 수동으로 중지하거나 중단할 수 있으므로 오래된 체계에 대해 일종의 자동 DB 정리가 여전히 필요함)
SQL 스크립트를 실행하는 데 sql-maven-plugin을 사용할 수 있습니다.또는 플라이웨이를 사용하는 경우 플라이웨이 메이븐 플러그인.
언급URL : https://stackoverflow.com/questions/37608120/how-to-use-oracle-as-an-embedded-database-for-running-unit-tests-in-maven
'programing' 카테고리의 다른 글
확인란과 같은 이미지 사용 (0) | 2023.07.25 |
---|---|
Moodle에서 동적 링크 버튼을 만드는 방법 (0) | 2023.07.25 |
Import 후 기존 데이터에 대해 MariaDB 데이터베이스의 모든 제약 조건을 검증하는 방법은 무엇입니까? (0) | 2023.07.25 |
jQuery $.ajax() 함수의 오류 메시지 원본 (0) | 2023.07.25 |
oracle 12c - 마지막 문자 이후 문자열 선택 (0) | 2023.07.25 |