2011-04-07 4 views
7

Microsoft Visual Studio 테스트 프레임 워크를 사용하고 일부 테스트에 xml 파일을 입력해야합니다. 현재 나는 TestProject의 Resource 디렉토리에 그것들을 놓았으며 ".. \ .. \ whatever"경로 이름을 통해 그것들에 접근하고 있습니다. 이 모든 상황에서 테스트를 재사용하고 싶으므로 테스트 리소스 파일을 사용할 때 좋은 습관이 필요합니다. - VS 2010에서 직접 적용 - 서버에서 빌드 프로세스 중 - 연속 통합 환경에서 투명하고 간단한 방법.C# 테스트 리소스

답변

8

우선 내가 일반적으로 테스트하는 동안 (파일 시스템에 대한 추상화를 도입하여 파일 시스템 액세스를 조롱 할 수 있음) 파일 시스템에 의존 할 필요성을 줄이려고합니다.

가능하지 않은 경우 해당 파일을 TestData 또는 비슷한 이름의 하위 폴더에 테스트 프로젝트에 포함합니다. 그런 다음 "출력 디렉토리에 복사"를 "항상 복사"로 설정하여 파일이 출력에 포함되고 테스트 어셈블리와 관련하여 알려진 위치에 있는지 확인합니다 (비주얼 내부에서 빌드가 완료되었는지 여부는 관계 없음). Studio 또는 빌드 서버). 테스트중인 코드가 파일을 수정하는 것이 아니라 파일을 읽는 데 필요한 코드 만 있으면 아주 잘 작동합니다.

+0

출력 디렉토리를 항상 복사로 설정 하시겠습니까? 모든 파일에서 또는 디렉토리에서 전역으로 설정할 수 있습니까? –

+0

@Terenzio : 개별 파일에 설정해야한다고 생각합니다. 솔루션 탐색기에서 다양한 파일을 선택하여 한 번에 수행 할 수 있다고 생각합니다. 지금은 확인할 수 없습니다. 바로 지금 Visual Studio가 없습니다. –

+2

VS2010 : 또한 빌드 작업 파일 속성을 "없음"으로 설정하십시오. – Dmitry

0

저는 통합 테스트 중 하나에서 이와 같은 작업을 수행합니다. 당신이 가진 것과 같은 방식으로 그것을 해결했습니다. 파일이 소스 제어에 체크인되고 상대 경로 (사용자가 보이는 것처럼)를 사용하는 한 예상대로 작동해야합니다.

0

우리는 CI 용으로 TFS2010을 사용하고 있습니다. 모든 출력 파일은 바이너리 폴더에 저장됩니다. XML과 같은 config 리소스의 경우 Copy use로 출력 디렉토리 옵션을 사용했습니다. 따라서 항상 출력 디렉토리에 배치됩니다.

2

나는 다음 접근 방식을 제안 할 것입니다. answer. 비슷한 질문입니다. 이 방법은 DeploymentItem 특성을 사용하며 데이터 기반 테스트를 수행 할 때도 사용됩니다.