코드 범위가 특정 임계 값보다 낮 으면 빌드가 실패 할 수 있습니까?TFS 2010 RC : 낮은 코드 적용 범위에서 빌드를 실패하는 방법?
답변
빌드 작업에서이 작업을 수행 할 가능성이 매우 높습니다 (특히 자신을 롤업하려는 경우). 잘하면 누군가가 당신을 위해 몇 가지 샘플 코드를 게시 할 것입니다.
그렇지 않은 경우이 유형의 작업에 대해서는 NDepend에 깊은 인상을 받았습니다. 아주 자명 한 SQL과 유사한 구문을 작성하여 코드에 대한 모든 종류의 메트릭을 결정하고 임계 값을 기반으로 빌드를 경고하거나 실패 할 수 있습니다.
예 :
WARN IF Count > 0 IN SELECT METHODS WHERE CodeWasChanged AND PercentageCoverage < 95
WARN IF Count > 0 IN SELECT METHODS WHERE IsPublic AND IsInOlderBuild AND WasRemoved
주요 문제는 MSTEST가 생성하는 코드 검사 결과 파일이 바이너리 형식으로되어 있다는 점이다.
http://codeexperiment.com/file.axd?file=2008%2f9%2fCodeCoverageConverter.zip
참고 : 그러나 상황이 VS2010에서 너무 많이 변경하지 않은 가정, 당신은 XML 파일로 변환이 유틸리티를 사용할 수 있어야합니다 당신은 아마에 대해 그것을 다시 컴파일해야합니다 VS2010 버전 'Microsoft.VisualStudio.Coverage.Analysis.dll.
그런 다음 XML 파일을 구문 분석하는 데 원하는 방법을 사용하여 인스트루먼트 된 각 어셈블리에 대한 계산을 수행하여 전체 커버리지 비율을 계산할 수 있습니다. 당신이 (적어도 VS2008에 대한) 관심있는 XPath의는 다음과 같습니다
/CoverageDSPriv/Module/LinesCovered
/CoverageDSPriv/Module/LinesNotCovered
당신이 순수의 MSBuild의 마지막 단계를 수행 할 경우, 'XmlRead'와 '수학'작업이 MSBuild를 커뮤니티 작업에 포함 도서관은 충분해야한다 : 당신이 MSBuild에서 속성의 전체 비율을 일단
http://msbuildtasks.tigris.org/
, 당신은 단순히 그 숫자가 원하는 임계 값보다 낮은 경우 빌드를 중단하는 조건 작업을 사용합니다.
고대의 질문이지만 대답은 표시하지 않았습니다. 살펴보기 this