2012-04-26 2 views
1

내가 작업하고있는 애플리케이션은 바람둥이/봄 MVC/Mongo on tomcat 종류의 webapp입니다.임베디드 Mongo 또는 인스톨 된 인스턴스를 이용한 통합 테스트

EmbedMongo을 사용하여 Embedded Mongo에서 내 통합 테스트를 실행할 수 있습니다. 예를 들어 약 1 분 정도 걸리지만 설치된 Mongo의 테스트 데이터베이스에서는 15 초 정도 걸립니다.

새 데이터베이스를 만들 때 통합 테스트에 임베디드 데이터베이스를 사용하면 실제로 이점이 있습니까? (이 경우 동일한 인스턴스 내의 테스트 데이터베이스) 무시할만한 노력입니까? 사실, 테스트 자체가 DB 및 필요한 수집을 만들 수 있습니다.

일반 설치가 필요하지 않은 CI 상자에서 Embedded Mongo를 사용하는 것 외에는 별다른 이점이 없습니다.

누구나 아이디어를 공유 할 수 있습니까?

덕분에 당신은 별도의 설치 인스턴스 Gaurav

답변

0

당신은 따라서 귀하의 테스트 스위트를위한 임베디드 DB를 사용하는 이점을 최소화하려는 것이다 관련된 공정 설치 및 해체 비용. 링크에서

+0

그래, 그렇긴하지만 Mongo의 경우 설정/제거 비용은 무시할 수 있습니다. 그리고 dev에 상자에, 항상 실행되는 그래서 같은 인스턴스 안에 다른 테스트 DB를 사소한 업적입니다. 그래서 임베디드 몽고가 좋은 아이디어인지 아직도 혼란 스럽습니다 – user724503

1

봐 : https://stackoverflow.com/a/9830861/82609

그것은 좋은 것 같습니다하지만 MongoDB를가 시작되고 각 테스트 사이의 종료.

속도를 높이려면 시작하고 전체 테스트 스위트에 대해 한 번 종료하십시오. 의미 : MongoDB 인스턴스를 테스트 사이에 유지하십시오.


하지만 테스트가 서로 종속되지 않도록하려는 경우입니다. 그래서 당신이 할 수있는 것은 다른 데이터베이스 이름 (UUID)을 사용하여 결국 하나의 MongoDB 인스턴스가 실행되고 많은 개별 데이터베이스가 각 테스트마다 하나씩 실행되도록하는 것입니다.

또는 각 테스트 사이에 데이터베이스를 정리할 수 있습니다.

+0

어떻게 청소할 수 있습니까? –

관련 문제