2012-01-09 6 views
2

데이터 모델 코드 (최대 절전 모드) 및 일부 단위 테스트가 포함 된 프로젝트 A가 있습니다. 나는 또한 다른 프로젝트 B, C 및 D 코드와 단위 테스트를 가지고있다. 또한 모든 프로젝트의 단위 테스트에서 사용되는 일련의 테스트 유틸리티 클래스가 있습니다. 이 테스트 유틸리티 클래스는 데이터 모델 클래스를 사용하기 때문에 프로젝트 A에 의존합니다.테스트 클래스 가시성

이러한 테스트 유틸리티 클래스를 프로젝트 A에 넣으면 다음과 같은 문제가 발생합니다. 프로젝트 B, C 및 D가 IDE 외부에서 이러한 테스트 유틸리티 클래스를 볼 수있는 방법 (이 테스트 유틸리티 클래스가 src/test/java 디렉토리에 있고 JAR에 포함되지 않은 경우)?

이 테스트 유틸리티 클래스를 분리 된 프로젝트에 넣으면 테스트 유틸리티 클래스가 프로젝트 A에 종속되고 A의 단위 테스트가 이러한 테스트 유틸리티 클래스를 사용하기 때문에 순환 종속성이 생깁니다. 당신의 도움에 대한

감사

답변

2

테스트를 실행할 때 다른 프로젝트에만 사용하는 별도의 JAR 파일의 클래스가 (빌드 프로세스에 의해) 포장되어야이 테스트 유틸리티.

당신은 자신의 병에 각 프로젝트를 묶을 수
+0

내 의견을 Manish Sharma에게 보냅니다. –

+0

@Mickael Marrache : 테스트 유틸리티를 별도의 프로젝트에 배치해야한다는 것은 아닙니다. 두 개의 JAR이 생성되는 하나의 프로젝트 A, 테스트 유틸리티가 포함 된 프로젝트 A 및 프로덕션 코드가 포함 된 프로젝트 A가 있어야한다는 것입니다. –

+0

좋은 지적이지만 Maven이 권장하지 않는 것 같습니다 : http://maven.apache.org/guides/mini/guide-using-one-source-directory.html을 참조하십시오. 그래서 깨끗한 해결책이 있다고 생각했습니다. –

1

-에 a.jar, b.JAR가, C.jar, D.jar 자신의 병에 유틸리티 클래스를 넣어 - 그럼

쉽게 할 수 testutilities.jar testutilities.jar를 포함시켜 다른 프로젝트에 테스트 기능을 포함 시키십시오. testutilities.jar가 A.jar에 종속되므로 A.jar도 포함시켜야합니다.

+0

문제는 테스트 유틸리티 클래스는 프로젝트 A에 의존하고 A의 단위 테스트는 이러한 유틸리티 클래스를 사용한다는 것입니다. 따라서 필자가 분리 된 프로젝트에 Test Utilities 클래스를 넣으면 순환 종속성이 생깁니다. –