2012-05-21 2 views
0

OpenXml 기반 엔진에서 작업하기 시작했으며 테스트 목적으로 많은 pptx 파일을 사용하고 있습니다. 우리는이 파일들이 소스 컨트롤에 저장되는 것을 원하지 않습니다. 이것에 대한 권고 사항이 있습니까? 네트워크 공유 또는 매핑 된 드라이브 등에 저장할 수 있습니까?NUnit : 단위 테스트, 테스트 데이터 파일 저장에 대한 권장 사항

+1

왜 파일을 소스 컨트롤에 저장하지 않으시겠습니까? –

+0

나는 SCM이 바이너리의 커다란 coz를 성장 시키길 원하지 않았다. – Aneef

답변

4

왜 소스 파일에 테스트 파일을 저장하지 않습니까? 분명히 테스트 스위트의 일부이므로 테스트에 속한다.

이런 식으로 생각해보십시오 : 코드에 문제가 있는지 알아보기 위해 테스트를 작성하십시오. 코드가 지금 테스트를 통과하면 코드 자체 또는 테스트 (테스트를 수행하는 테스트 파일 포함)를 변경하면 코드가 실패 할 수 있습니다. 따라서 소스 제어에서 테스트 파일을 테스트 파일과 함께 유지하여 정확히 실행되는 테스트를 제어 할 수 있습니다.

시간이 지남에 따라 이러한 파일을 변경하여 요구 사항의 변경 사항을보다 잘 반영 할 수 있습니다. 이 시점에서 어떤 버전의 테스트 파일이 소스/테스트 코드의 버전에 속하는 지에 관해서는 신경 쓰지 않아도됩니다. 개별적으로 유지하면 일어날 것입니다.

+0

고마워. 내가 SCM에서 그것을 원했던 이유는 바이너리가 SCM을 더 크게 만들 수 있기 때문이다. 하지만 귀하의 요점은 유효합니다 :) – Aneef

+0

_huge_ 바이너리 및 그 중 톤이없는 한 디스크 공간은 오늘날 문제가되지 않아야합니다 – Attila

3

이들을 저장하는 논리적 인 장소는 버전 제어입니다. 이렇게하면 이전 버전의 테스트 코드를 무시하지 않고 수정할 수 있습니다. 네트워크 공유에 저장하면 문제가 계속 발생합니다. 귀하의 버전 제어 시스템은 누가 파일을 변경했는지와 함께 파일에 대한 모든 변경 사항을 기록합니다. 네트워크 공유가 비슷한 기능을 제공하지는 않습니다. 파일의 크기와 버전 관리 시스템이 문제가되는지 여부에 대해 염려가된다면 적절한 버전 관리 시스템을 갖춰야합니다.

+0

테스트에 필요한 외부 파일을 사용하는 한 가지 방법은 파일을 테스트 어셈블리에 임베드 의지. 유일한 단점은 어셈블리가 상당히 커질 수 있지만 중요한 문제는 아니라는 점입니다. 테스트 어셈블리를 움직이면 외부 파일 세트에 대해서도 걱정할 필요없이 내부의 모든 종속성을 해결할 수 있다는 점을 확신하십시오. –

+0

왜 테스트 어셈블리를 이동해야합니까? – Attila

+1

우리는 TeamCity를 사용하여 인공물을 빌드하고, 소스 코드를 지속적으로 재구성 할 필요가 없도록 다양한 빌드 주위로 이동하고 이동합니다. 테스트 아티팩트를 테스트 어셈블리 내에 배치함으로써 테스트 어셈블리와 함께 아티팩트를 복사 할 필요가 없습니다. 잘못 될 수있는 또 다른 일. –