2009-11-10 2 views
1

NetBeans 6.7.1을 사용하여 클래스 중 하나에 Junit 테스트를 추가하고 있습니다. 테스트에 관련된 xml 파일이므로 실제 테스트와 함께 "패키지 테스트"폴더에 포함 시켰습니다. 나는이 문제로 실행 해요NetBeans 6.7.1의 Junit 테스트에 테스트 파일 추가 - getResource 문제, 빌드 디렉토리에 누락 된 파일

(1)의 getResource이 잘못된 디렉토리에 찾고

(2) I는 (주 테스트를 실행할 때 내 XML 테스트 파일이 복사되지 않습니다,이 기능은 I와 함께 작동

"Sources Packages"디렉토리에 파일을 추가하십시오). . 내 테스트 클래스에서

:

this.getClass()의 getResource ("/")

반환 :

D : \ UserProfiles \ MyName로 내 문서 \ \ NetBeansProjects \ ProjectExample \ build \ classes

너무 필요합니다. 반환 :

D : \ UserProfiles \ MyName로 내 문서 \ \ NetBeansProjects \ ProjectExample \ 빌드 \ 테스트

(테스트 클래스가 컴파일되는 곳이기 때문에) 그것은 부모를 받고,의 getResource를 호출 오히려 해키 보인다

\ 클래스 , 그리고 test \ classes를 살펴 본다. 이것은 내 테스트 파일의 경로를 얻는 적절한 방법인가? 어쩌면 이것은 넷빈의 버그일까요?

또한 내 testFile을 마우스 오른쪽 단추로 클릭하고 "테스트 실행"을 선택하면 내 테스트 클래스 파일 만 테스트/classes 디렉토리에 복사되고 내 xml 테스트 파일은 복사되지 않습니다. Netbeans에게 클래스 파일과 함께 일반 XML 파일을 빌드 디렉토리에 복사하도록 지시하려면 어떻게해야합니까?

또한 테스트 파일을 복사하기 위해 ant 빌드를 해킹하지 않는 것이 좋습니다.

+0

좋아, 문제 2는 클린 빌드를 수행하여 해결되었습니다. – vicsz

+0

새 테스트를 실행할 때마다 이러한 파일이 삭제됩니다. – vicsz

답변

1

파일을 테스트와 동일한 패키지에 넣으면됩니다. 예를 들어 foo.bar 패키지의 data.xml을 사용하십시오. 없음 복사 또는 빌드 스크립트 해킹이 필요하지 않습니다, 그냥이 같은 파일을 참조 :

getClass().getResource("data.xml"); 

또한,이 작업을 수행 할 수 있습니다

getClass().getResource("/foo/bar/data.xml"); 
+0

감사합니다.하지만 패키지를 만들기 전에이 파일에 액세스 할 수 있었으면합니다. 즉, 테스트를 실행하고 Java 파일을 클래스 파일로 컴파일합니다. – vicsz

+0

그게 무슨 뜻이야? NetBeans는 * .jar을 만들지 않고 클래스를 컴파일하고 테스트를 실행하기 때문에 다음과 같은 파일을 참조 할 수 있습니다. – candiru

+0

테스트 파일을 마우스 오른쪽 버튼으로 클릭하고 "테스트 파일"을 선택하면 선택한 파일 만 빌드되고 테스트됩니다. 나는 훨씬 더 효율적인 다음 전체 프로젝트를 재 구축하고 싶습니다. 단지 TDD를 사용하여 새로운 프로젝트를 실행하고 싶을 때입니다. – vicsz

3

내가 최근 넷빈즈 6.9.1을 사용하여이 문제를 다 퉜다. 여기 내가 어떻게 해결 했는가.

  1. 열기 프로젝트 -> 속성 -> 도서관
  2. 실행을 선택하면 리소스 파일
  3. 폴더 추가를 저장 한 곳으로 탭을 추가 항아리에
  4. 클릭/폴더
  5. 이동을 테스트

이제 이러한 리소스를 사용하여 테스트를 실행하면됩니다. 필자는 NetBeans 6.9.1 및 간단한 Java 응용 프로그램에서이를 테스트했습니다.

NetBeans는 기본적으로 src 디렉토리에 리소스 파일을 만듭니다 (기본 패키지). 위의 5 단계에서 src 폴더를 추가했습니다. 일단 클래스 패스에서 리소스 파일을 찾으면 테스트를 수행 할 것이다.

기본적으로 NetBeans는 src 폴더에있는 리소스를 패키지하므로 파일을 복사하고 동기화 할 필요가 없습니다.

테스트 자원을 프로덕션 자원과 다르게하려면 테스트 폴더 아래의 기본 패키지에 테스트 자원을 추가 할 수 있습니다. 위의 4/5 단계에서 src 폴더를 추가하는 대신 테스트 폴더를 추가하십시오.