2010-05-11 4 views
14

거대한 프로젝트 톤의 클래스와 디렉토리.유닛 테스트 디렉토리 구조

단위 테스트 프로젝트가 이러한 디렉토리를 미러링하도록합니까? 아니면 모두 루트 디렉토리에 배치합니까?

다소 디렉토리를 변경하고 클래스 이름을 변경해야 할 필요가 있습니다.

+0

태그에 대한 작업 언어를 추가하는 것이 도움이 될 것입니다. – Jherico

+2

unittest를 프로젝트 디렉토리에 직접 입력하는 것은 어떻습니까? – Stephen

답변

17

당신은 확실히 단위 테스트 디렉토리가 테스트중인 코드의 디렉토리를 미러링하기를 원합니다. 수동으로 설정하는 것은 경미한 통증이지만, 그 고통은 테스트에서 코드보다 다른 구조에있는 모든 테스트를 더미로 또는 심지어 악화시키는 고통만큼 오래 지속되지 않습니다.

분명히 당신은 자바를 사용하지 않고 있거나 테스트 코드는 이미 테스트중인 코드와 동일한 패키지 구조를 가지고있을 것이고 질문은 문제가 될 것입니다. (적어도 내가 다른 방법으로 그것을 상상할 수 없다.)

+1

Seconded. 괜찮은 IDE라면 리팩토링 디렉토리와 이름을 쉽게 만들 것입니다. – Jherico

+2

언어에 따라 디렉토리가 아닌 패키지/모듈/네임 스페이스에 더 많은 스트레스를 가할 수 있습니다. –

+0

@ 가브리엘 : 동의합니다. 그 일을하고 싶었지만 @zachary는 언어를 지정하지 않았습니다. –

5

나는 프로젝트 디렉토리에 그들이 지원하는 코드에 물리적으로 가까이 유지하기 위해 단위 테스트를하는 것을 선호합니다. 단위를 포함하는 디렉토리는 특정 test 디렉토리에있는 해당 구성 요소/패키지 디렉토리에있는 하나의 구성 요소/패키지가 src 디렉토리와 동일한 레벨인지 테스트합니다. 이것은 C/C++ 프로젝트 FWIW에서 내가하고있는 일입니다. 주된 이유는 구성 요소 테스트와 단위 테스트를 동시에 컴파일하여 단위 테스트를 표시하는 것입니다 (기존 구성 요소에는 모두 단위 테스트가있는 것은 아닙니다).

그런 식으로 디렉토리 구조에 대한 모든 변경 사항은 유닛 테스트가 프로덕션 코드와 함께 이동하므로 테스트 디렉토리 구조에 아무런 영향을 미치지 않습니다. 두 개의 병렬 디렉토리 구조를 갖는 것은 나에게 중복 된 형태이다.