2010-03-10 39 views

Trả lời

0

Có nhiều khả năng một cách để làm điều này với một nhiệm vụ xây dựng (đặc biệt là nếu bạn sẵn sàng để cuộn của riêng bạn). Hy vọng rằng ai đó sẽ đăng một số mã mẫu cho bạn.

Nếu không, tôi đã bị ấn tượng với NDepend đối với loại tác vụ này. Bạn có thể viết theo cú pháp giống như SQL tự giải thích để xác định tất cả các loại chỉ số về mã của bạn và cảnh báo hoặc không xây dựng dựa trên các ngưỡng.

Ví dụ:

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

Vấn đề chính là kết quả mã số bảo hiểm tập tin đó MSTest sản xuất có định dạng nhị phân. Tuy nhiên, giả định rằng mọi thứ đã không thay đổi quá nhiều trong VS2010, bạn sẽ có thể sử dụng tiện ích này để chuyển đổi nó thành một tập tin XML:

http://codeexperiment.com/file.axd?file=2008%2f9%2fCodeCoverageConverter.zip

Chú ý: Bạn có thể sẽ cần phải biên dịch lại nó chống lại phiên bản VS2010 của 'Microsoft.VisualStudio.Coverage.Analysis.dll.

Sau đó, bạn có thể sử dụng phương pháp phân tích cú pháp ưa thích của mình là tệp XML, thực hiện các phép tính cho từng hội đồng được thiết lập để tính toán tỷ lệ phủ sóng tổng thể. Các XPath bạn quan tâm (ít nhất là cho VS2008) là:

/CoverageDSPriv/Module/LinesCovered 
/CoverageDSPriv/Module/LinesNotCovered 

Nếu bạn muốn làm điều đó bước cuối cùng trong tinh khiết MSBuild, sau đó là 'XmlRead' và nhiệm vụ 'Toán' chứa trong MSBuild Nhiệm vụ cộng đồng thư viện nên là đủ:

http://msbuildtasks.tigris.org/

một khi bạn có tỷ lệ tổng thể trong một tài sản MSBuild, sau đó bạn chỉ cần sử dụng một công việc có điều kiện để phá vỡ build nếu con số đó thấp hơn ngưỡng mong muốn của bạn.

<Error Condition=" $(CodeCoverageRatio) &lt; $(MinCodeCoverage) " 
     Text="Code Coverage is below required threshold." /> 
0

Câu hỏi cổ, nhưng không được đánh dấu là đã trả lời. Hãy xem this

Các vấn đề liên quan