2010-03-10 4 views

답변

0

빌드 작업에서이 작업을 수행 할 가능성이 매우 높습니다 (특히 자신을 롤업하려는 경우). 잘하면 누군가가 당신을 위해 몇 가지 샘플 코드를 게시 할 것입니다.

그렇지 않은 경우이 유형의 작업에 대해서는 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 
2

주요 문제는 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/

, 당신은 단순히 그 숫자가 원하는 임계 값보다 낮은 경우 빌드를 중단하는 조건 작업을 사용합니다.

0

고대의 질문이지만 대답은 표시하지 않았습니다. 살펴보기 this

관련 문제