2011-04-23 1 views
0

Maven에서 다음을 구성하는 방법에 대해 설명해주십시오.통합 테스트, 다중 컨테이너, 다중 API 구현 및 Maven. 어떤 팁?

  • 데이터 액세스 API
  • 데이터 액세스 IMPL-더비
  • 데이터 액세스 IMPL-PostgreSQL의
  • 데이터 액세스 통합 - 테스트
: I 4 개 모듈을 가정

  • arquillian-jbossas-EB :

    내가 두 개의 용기에 대해 테스트 할 수 있도록하려면 가정 edded-6

  • arquillian - 글래스 피쉬 - 임베디드 3.1

을 내 통합 테스트를 실행하려면, 나는 '데이터 액세스 API를'모듈과 구현 정확히 하나의이 필요합니다. 나는 또한 컨테이너의 정확히 테스트하고 싶습니다. 나는 그것들을 작동시키는 몇 가지 방법을 생각할 수있다. 그러나 그것들은 모두 단점을 가지고 있으며 Maven이 그것들 중 일부를 지원하는지조차 모른다.

나는 비슷한 아무것도 이제까지 추가되지 않은, 지금까지 내가 말할 수있는, 메이븐에 프로필 그룹의 개념을 추가 할 수있는 다음과 같은 제안을 찾았지만 :

http://docs.codehaus.org/display/MAVENUSER/Improvements+to+Profile+Activation+Deactivation

그룹을 갖는 개념 상호 배타적 인 프로파일은 작동하지만 상당히 관리하기 어려울 수 있습니다. 3 개의 구현과 3 개의 컨테이너를 상상해보십시오. 3 가지 가능한 조합을 테스트하는 데 관심이있을지라도 9 가지 가능한 프로필 구성이 있습니다.

내가 생각할 수있는 또 다른 해결책은 테스트해야하는 각 시나리오에 대해 하나의 통합 모듈을 만드는 것입니다. 예를 들어 (자세한 이름은 무슨 뜻인지 명확히하기 위해) :

그러나

  • 통합-arquillian - 글래스 피쉬 - 임베디드 데이터 액세스 - PostgreSQL을, 나는 그렇게 할 수있는 방법을 알아낼 수 없습니다 내 통합 테스트를 복제하지 않아도됩니다. 내 데이터 액세스 통합 테스트 모듈은 통합 테스트 만 있습니다. 의존성 주입에 CDI를 사용하고 API에 대해 테스트를 실행합니다. 각 구현에 대해 동일한 테스트 집합을 실행할 수 있습니다. API를 사용하여을 정확히 구현하는 것은 단지 의 패키징 문제 일뿐입니다.

    저는 지금 Maven 2를 사용하고 있습니다.

답변

0

통합 테스트를 추상 클래스와 별도 모듈 (이미 수행 한 작업)에 적용하고 구현 인스턴스를 생성하고 테스트를 실행하는 파생 클래스를 만드는 것은 어떻습니까? 먼저 테스트를 한 번만 구현하면 인터페이스 비헤이비어에 대한 구현을 테스트하기 때문에 먼저 해결할 것입니다. this 일 수 있습니다 조금 더 명확하게. 나는 당신이 "통합 -Arquillian-glassfish-embedded-data-access-postgresql"이 추상 클래스에서 파생되어 하나의 클래스 만 포함하고 특정 인스턴스를 생성하고 테스트를 실행하도록 제안한 마지막 것이 최선이라고 말하고 싶습니다 .

+0

이것은 내가 결국 한 일입니다. 메이븐 (Maven)은 그것들을 [첨부 테스트] (http://maven.apache.org/guides/mini/guide-attached-tests.html)라고 부릅니다. CDI를 사용하고 있기 때문에 제 구현은 해결되고 컨테이너에 의해 주입됩니다. 각 테스트에 대해 비어있는 파생 클래스를 만들지 않기 위해 필자는 통합 테스트 모듈에 테스트 스위트를 만들고 다른 통합 모듈에서 테스트 스위트를 확장했습니다. 필요한 곳마다 구현 및 컨테이너 별 테스트를 수행 할 수 있기 때문에 결국 예상했던 것보다 낫습니다. –

관련 문제