2009-08-03 4 views
2

일종의 일종의 this 질문입니다. 소스 트리에 보관합니까? 그들을 소스 제어에 보관합니까?테스트 데이터 파일은 어디에 보관합니까?

I 그러므로 소스로 확인해야합니다, 테스트 케이스가 파일을 참조하는 경우, 다음 파일이 그러므로이 시스템의 현재 버전과 관련된있어, 시스템의 동작 사양의 일부라고 생각 해요 제어. 그러나 나는 그들이 로컬 일 필요는 없으며 잠재적으로 상당히 클 수 있기 때문에 로컬에서 체크 아웃해야한다고 생각하지 않습니다. 따라서 프로젝트의 코드 파일이 $ svn/Code/foo/bar/baz에 있으면 관련 테스트 데이터 파일이 $ svn/TestData/foo/bar/baz에 있고, 후자는 어떤 종류의 일반적인 테스트 데이터 도우미 클래스 (파일을 로컬에서 캐시 할 수 있습니까?)를 사용하여 서버에서 직접 액세스 할 수 있습니다.이 클래스는 상대 경로를 받아 들일 수있는 곳을 찾아 낼 수 있습니다. 이게 말이 돼?

은 내가 처음에 테스트를 위해 외부 파일을 사용하는 방법을 광범위의 관련된 질문이있는 것 같아요. 나는 그들이 더 높은 수준의 "수용"테스트에 종종 좋은 것이라고 생각한다.

답변

3

그러나 나는 그들이이

왜 할 필요가 없기 때문에, 로컬 체크 아웃해야한다고 생각하지 않는다? 테스트는 복잡한 소프트웨어 시스템에서 없어서는 안될 부분입니다. 데이터없이 작동 할 수 없다면 쓸모 없게됩니다.

테스트 데이터를 필요에 따라 원격으로 가져 오는 아이디어는 흥미 롭습니다.하지만 테스트를 실행하기 만하면 Subversion 서버 연결에 의존하게됩니다. 나는 이것이 단순한 일이 무엇인지에 불필요한 복잡성을 추가한다고 생각합니다. 실행 테스트가 개발의 병목이 될 수 없습니다.

이 외에도 두 개의 다른 svn 트리를 유지해야한다는 점을 고려해야합니다. 여러 개의 지형지 물과 지점 또는 태그가있는 경우 악몽이 될 수 있습니다.

질문에 명시 적으로 대답하기 위해 테스트 파일을 < 프로젝트 루트 >/tests에 보관하므로 각 분기마다 고유 한 작업 및 유용한 테스트 세트가 있습니다.

+0

그래, 네가하는 말을 보았다. 낮은 수준의 단위 테스트와 높은 수준의 수용 테스트 (성능 테스트 측면을 포함하고 경우에 따라 멀티 기가 바이트 입력 데이터를 실행할 수도 있음) 사이를 깨끗하게 분할해야 할 필요가 있다고 생각합니다. 분명한 것은, 변경을 할 때마다 후자를 실행해서는 안되며, 실행하는 데 몇 분이 걸리기 때문에, 나는 여전히 자동으로 주기적으로 실행하려고합니다. 크고 지저분한 데이터 입력을 처리하도록 설계된 이와 같은 프로젝트의 테스트를 처리하는 방법에 대해서는 여전히 다소 혼란 스럽습니다. –

0

나는이 방법

- Trunk 
    - Source 
    - Lib 
    - Tests 
     - DescriptiveTestName_1 
     - DescriptiveTestName_2 
- Branches 
    - v0.9 
     - Source 
     - Lib 
     - Tests 

모든 파일을 소스 라이브러리와 테스트가 각 버전에 함께있는이 방법으로 소스 제어에 추가하고 그것을 개발 (및 문제 해결) 할 때 속도까지 얻을 쉽습니다. 테스트중인 각 하위 디렉토리에는 테스트에 필요한 모든 파일이 들어 있습니다.

+0

그런 다음 "테스트"에 테스트 데이터 파일과 테스트 용 소스 코드가 모두 포함되어 있습니까? 아니면 Source/test 아래에있는 소스 코드입니까? – MatrixFrog

6

우리는 "모든 것이 소스 제어하에 있습니다"라는 생각의 학교에 가입합니다 (항문 보유력이 없어도 으로 시작합니다). 우리는 VM 년대에 (단위, 시스템 통합, 번역 ...), 개발 소프트웨어 CD/DVD 이미지, OS 이미지에 대한 책임 테스트의 모든 수준에 대한 테스트 케이스 (코드 및 데이터)을 의미

하드웨어를 제외하지만 우리가 방법을 발견하지 않은 때문이다 - 팀에있는 모든 PC와 소프트웨어가 도난한다면 테스트 환경은 모든 DOCO이 필요한 것 기본적으로 모든 함께 개발/테스트 환경을 넣어 아직 그것을 확인하려면 :-).

디스크 공간이는 데 걸리는 시간보다 훨씬 저렴 다시 소스 모든 것을 우리가 필요합니다. 그리고 소프트웨어 버전이 출시 될 때 우리는 실제로 해당 버전을 구성하고 여러 DVD에 구운 다음 처녀한 하드웨어에서 프로세스를 테스트하는 데 필요한 모든 것을 확인합니다. 그런 다음 여러 복사본을 만들어 우주의 네 구석에 배포합니다 ... 죄송합니다.

do 빌드 DVD가 여러 개의 지리적으로 떨어져있는 위치 (지구상이 아니라 우주를 가로 질러)에 배포되었지만 내가 말한 모든 것을 수행합니다.

는 소스 제어 트리에서가는 곳으로, 우리의 트리의 최상위 레벨은 항상 버전이 아래에 존재와 함께 할 수있는 버전, 전부입니다. 이것은 방대한 복제를 제공하지만 관리하기가 매우 쉽습니다. 그리고 일반적으로 디스크 스토리지는 인적 자원보다 훨씬 저렴합니다.

1

필자는 테스트 데이터가 버전과 동일해야하며, 최신 코드를 풀고 테스트를 실행하는 것이 쉽습니다. 나는이처럼 내 나무를 설정 :

trunk/ 
    +- Source/ 
    +- TestSource/ 
    \- TestData/ 

시험은 그 때 무엇을해야 ../TestData/myTestData.xml 또는를 참조하십시오.

관련 문제