TFS에 커다란 코드 기반을 가지고 있으며 여러 개의 .sln 파일이 있고 각 파일에는 많은 프로젝트와 하나 이상의 단위 테스트 프로젝트가 있습니다. 대부분의 단위 테스트는 일반적인 XML 및 XSD 파일에 의존하며 유닛 테스트시 코드가 필요로하는 몇 가지 다른 유형의 파일 (.config, .xaml 등)이 있습니다.누락 된 파일로 인해 TFS 실행 단위 테스트가 실패했습니다.
TFS가 단위 테스트를 위해 파일을 빌드하고 수집하는 방식 때문에이 파일의 대부분은 TestResults 폴더에 없으므로 CI 빌드 중에 테스트가 실패합니다 [잠시 동안 발생하지만 프로젝트에 새롭고 오류를 수정하려고합니다.] TFS가하는 일은 다음과 같습니다. 첫째, 개발자가 로컬에서 수행하는 것처럼 src 폴더 (Solution1, Solution2 등)의 모든 코드를 체크 아웃하고 빌드합니다. 둘째, 빌드 출력을 bin \ Binaries 폴더에 복사합니다. 셋째, 모든 테스트 .dll 파일을 찾고 해당 종속성 (종속성 만) 및 App.config 파일을 TestResults \ Deploy_ [날짜/시간] \ Out 폴더에 복사하고 단위 테스트를 실행합니다 그곳에.
두 가지 문제가 있습니다. 두 번째 단계는 모든 빌드 출력을 하나의 폴더로 결합하기 때문에 중복 된 이름을 가진 모든 파일이 서로 겹쳐 쓰여집니다. 따라서 각 솔루션에는 고유 한 App.config 파일이 있습니다. 이것은 다른 config/xml 파일과 단위 테스트 .dll이라는 이름이 잘못 붙어있는 두 개의 파일에서도 발생합니다. 대부분의 config 파일이 중복되고 다른 파일의 이름을 바꿀 수 있기 때문에 필자는이 작업을 수행 할 수 있습니다.
두 번째 문제는 이러한 추가 파일의 대부분이 TestResults 폴더에 저장되지 않으며 거기에 없으면 유닛 테스트가 실패합니다. [DeploymentItem] 특성 사용에 대해 알고 있습니다. 그것이 유일한 해결책이라면, 나는 그 길로 갈 것이지만, 나는 다른 접근법을 찾고있는 여분의 파일이 너무 많다.
그럼 내 질문은 어떻게하면 & 유닛 테스트에서 필요한 모든 파일을 포함하도록 빌드 할 수 있습니까? & 많은 [DeploymentItem] 특성을 추가하는 데 유지 관리 문제가 발생하지 않고 또한 로컬 빌드에 영향을 미치지 않고 & 개발자를위한 단위 테스트? 내가 찾은
업데이트
한 가지 단위 테스트에 [DeploymentItem] 속성을 추가하는 것은 실제로 배포 폴더가 사용되도록한다는 것이다. 그게 없으면 바이너리 폴더에서 단위 테스트를 실행합니다. "개별 배포 폴더는 언제 사용됩니까?"아래의 http://msdn.microsoft.com/en-us/library/ms182475.aspx을 참조하십시오.
또한 해당 페이지에서 .testsettings 파일에 배포 할 파일을 지정할 수 있지만 테스트가 느려질 수 있으므로 사용하지 말아야한다고 말합니다. 새로운 대안 인 .runsettings 파일을 사용하면 배포 할 파일을 나열 할 수 없습니다.
현재 코드 커버리지가 활성화되어 있지만 테스트가 통과되면 계획을 세우면 배포가 활성화 된 것 같습니다.
"단위 테스트 배포"를 검색해야합니다. 이러한 파일을 배포해야합니다. TFS 빌드 자체와는 아무런 관련이 없습니다. –
필자는 내 프로젝트 중 하나에서 파일을 얻는 비슷한 문제에 직면했습니다 (유형 "컨텐츠", "항상 복사"). 이 파일이 내 PC에서는 제대로 작동해야하지만 TFS (2012) 서버에서는 실패합니다. 파일이 서버의 \ 1 \ [project_name] \ [build_name] \ bin \ folder'에 복사 된 것을 볼 수 있습니다. '\ 1 \ [project_name] \ [build_name] \ tst \ [test_name] \ Out \'폴더에 없습니다. 어떤 제안? –
단위 테스트는 서버의 \ bin 폴더에서 실행되도록 구성 할 수 있습니다. .testsettings 파일이나 [DeploymentItem] 특성이 없지만이 단위 파일은 \ tst \ 폴더에서 실행해야합니다. 내가 뭘 놓쳤는가? –