테스트 중인 코드와 관련하여 테스트 코드를 어디에 배치해야 합니까?

StackOverflow https://stackoverflow.com/questions/1882707

  •  19-09-2019
  •  | 
  •  

문제

제가 생각할 수 있는 두 가지 확실한 장소는 제가 작업 중인 코드 바로 옆에 있는 일종의 "테스트" 폴더일 것입니다.그래서 다음과 같습니다.

\project-code
    \my-feature
        \production-code
        \testing
            ***my tests***
    \co-workers-feature
        \production-code
        \testing

또는 테스트 코드를 완전히 별도의 계층 구조로 나눌 수도 있습니다.그래서 다음과 같습니다.

\project-code
    \my-feature
    \co-workers-feature
\testing-project-code
    \my-feature
        ***my tests***
    \co-workers-feature

나는 많은 프레임워크가 두 번째 접근 방식을 사용하는 것을 보았지만 최근에는 대부분 편의를 위해 프로덕션 코드 내에 테스트 코드를 배치해 왔습니다.한 가지 접근 방식이 다른 접근 방식보다 훨씬 낫습니까? 아니면 여기에 모범 사례가 있습니까?

도움이 되었습니까?

해결책

두 번째 옵션을 사용합니다. 즉, 필요한 경우 테스트없이 코드를 배송 할 수 있습니다. 또한 수업이나 패키지를 보면서 단위 테스트가 어디에 있는지 알고 있습니다.

관련 질문은 다음과 같습니다.

동일한 프로젝트 나 다른 프로젝트에 단위 테스트를 했습니까?

다른 팁

가장 편리한 곳에 두십시오. 구축 시스템을 설정하여 원하는 경우 최종 제품에서 제거 할 수 있습니다. 테스트는 "모범 사례"입니다. 효과를 줄이지 않고 테스트를 더 쉽게 만드는 것은 단순히 모범 사례를 향상시키는 것입니다.

나는 단위 테스트를 가까이 유지하는 것을 선호합니다. 옵션 1이 잘 작동하는 것을 보았습니다. 작은 프로젝트의 경우 두 가지 접근 방식이 모두 잘 작동하지만 프로젝트가 점점 커짐에 따라 트리의 매우 다른 부분에 살 때 테스트를 찾고 유지하기가 더 어렵습니다. 가까운 경우 제품 코드를 변경할 때 변경하면 자연스럽게됩니다. 그들이 멀리 있다면 더 많은 정신적 노력이 필요하며 더 많은 무시 될 것입니다. 이것은 그들이 동기화되지 않을 가능성이 더 크다는 것을 의미합니다.

이를 위해서는 테스트 디렉토리를 조건부 편집 할 수있는 메이크 시스템이 필요합니다. 당신은 매번 그들을 만들고 싶지 않습니다. 당신이 그것을 얻을 수 없다면, 별도의 나무가 필요할 수 있습니다.

귀하가 관리하는 웹사이트라면 모두 같은 폴더에 넣어도 문제가 되지 않습니다.귀하가 출시하는 고전적인 소프트웨어의 경우, 출시할 때 실수로 부풀어오르는 일이 없도록 사례 2와 같이 별도로 두는 것이 좋은 습관이 되는 경향이 있습니다.

나에게, 첫 번째 옵션은 특히 SCM 관점에서 더 의미가 있습니다. 생산 코드 및 테스트 코드는 동기화되며 (필요한대로) 프로젝트를 태그하거나 분기하는 경우 프로덕션과 제작 및 분기를 태그하거나 분기합니다. 동시에 테스트 코드.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top