2009-12-10 6 views
3

내가 생각할 수있는 두 개의 분명한 장소는 내가 작업하고있는 코드 옆에 일종의 "테스트"폴더가 될 것이라고 생각할 수 있습니다. 그래서 뭔가가 :테스트 코드를 테스트하는 코드와 관련하여 어디에 넣어야합니까?

\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 

나는 프레임 워크의 많은 두 번째 방법을 사용하지만 최근에 우리가 주로 편의를 위해 생산 코드 내에서 우리의 테스트 코드를 넣어 봤는데 보았다. 하나의 접근법이 다른 접근법보다 훨씬 좋습니까? 아니면 여기에 모범 사례가 있습니까?

답변

0

웹 사이트가 귀하가 관리하는 웹 사이트가 동일한 폴더에있는 것이 아니라면 모두 마찬가지입니다. 당신이 그때 풀어 놓을 그것의 고전적인 소프트웨어가 당신이 풀어 놓을 때 당신이 우연하게 어떤 부 풀리는든지 일으키는 원인이되지 않는다 그래야 그것을 케이스 2에서 것과 같이 분리되는 좋은 연습 인 경향이있다.

2

가장 편리한 곳에 두십시오. 원하는 경우 최종 제품에서 빌드 시스템을 제거하도록 빌드 시스템을 설정할 수 있습니다. 테스트는 "우수 사례"입니다. 테스트의 효율성을 떨어 뜨리지 않으면 서 테스트를 더 쉽게 만드는 것은 모범 사례를 향상시키는 것입니다.

0

제게는 특히 SCM 관점에서 첫 번째 옵션이 더 적합합니다. 프로덕션 코드와 테스트 코드가 동기화되어 잘 유지되며 프로젝트에 태그를 지정하거나 분기하는 경우 태그 또는 생산과 테스트 코드를 같은 시간에 분기하십시오.

1

나는 가까운 단위 테스트를 유지하는 것을 선호 :

여기에 관련된 질문입니다. 나는 옵션 1이 잘 작동하는 것을 보았다. 소규모 프로젝트의 경우 두 가지 방법 모두 잘 작동하지만 프로젝트가 커지면서 나무의 다른 부분에 살면 테스트를 찾아 유지하는 것이 더 어렵습니다. 제품 코드가 바뀌면 제품 코드를 변경하면 자연스럽게 바뀝니다. 그들이 멀리있는 경우, 그것은 더 많은 정신적 노력이 필요하며 더 무시 될 것입니다. 이것은 그들이 동기화되지 않을 더 큰 기회를 의미합니다.

이렇게하려면 테스트 디렉토리의 조건부 컴파일을 허용하는 make 시스템이 필요합니다. 당신은 매번 그것들을 만들어야하는 것을 원하지 않습니다. 당신이 그것을 얻을 수 없다면, 별도의 나무가 필요할 수 있습니다.

관련 문제