2014-11-07 2 views
2

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 파일을 사용하면 배포 할 파일을 나열 할 수 없습니다.

현재 코드 커버리지가 활성화되어 있지만 테스트가 통과되면 계획을 세우면 배포가 활성화 된 것 같습니다.

+1

"단위 테스트 배포"를 검색해야합니다. 이러한 파일을 배포해야합니다. TFS 빌드 자체와는 아무런 관련이 없습니다. –

+0

필자는 내 프로젝트 중 하나에서 파일을 얻는 비슷한 문제에 직면했습니다 (유형 "컨텐츠", "항상 복사"). 이 파일이 내 PC에서는 제대로 작동해야하지만 TFS (2012) 서버에서는 실패합니다. 파일이 서버의 \ 1 \ [project_name] \ [build_name] \ bin \ folder'에 복사 된 것을 볼 수 있습니다. '\ 1 \ [project_name] \ [build_name] \ tst \ [test_name] \ Out \'폴더에 없습니다. 어떤 제안? –

+0

단위 테스트는 서버의 \ bin 폴더에서 실행되도록 구성 할 수 있습니다. .testsettings 파일이나 [DeploymentItem] 특성이 없지만이 단위 파일은 \ tst \ 폴더에서 실행해야합니다. 내가 뭘 놓쳤는가? –

답변

1

TFS 2013에서는 필요한 방식으로 파일을 구성하기 위해 powershell 사전 테스트를 실행할 수 있습니다. pre2013에 대한 테스트 설정 파일을 사용하여 테스트의 일부로 배치 할 파일을 가져올 수 있습니다.

테스트 설정 파일이 충분하지 않습니다 그러나 당신이 커뮤니티는 2012 년에 붙어 경우 2013 년

에 이전 버전에서 직접 PowerShell을 호출하는 도구를 빌드 사용할 수 있다면 당신은 .testsettings를 사용해야합니다 필요한 비트를 푸시하는 파일. 예, 빌드 속도가 느려지지만 위와 같이 빌드 프로세스를 사용자 정의하는 것 외의 유일한 선택입니다.

+0

우리는 여전히 TFS 2012를 사용하고 있습니다. –

+1

설명한대로 테스트 설정 파일을 사용할 수 있습니다. 그러나 2013 년까지 업데이트하지 않은 이유는 무엇입니까? –

+0

나는 왜 잘 모르겠다. IT 부서는 그것을 지원하기를 원하지 않으며, 경영진은 그것을 구매하기를 원하지 않으며, 다른 것입니까? 그것은 내 통제에서 벗어났다. –

관련 문제