Kod kapsamı belirli bir eşiğin altında olduğunda bir yapının başarısız olmasına nasıl neden olabilirim?TFS 2010 RC: Düşük kod kapsamı için bir yapı nasıl başarısız olur?
cevap
Bunu bir oluşturma göreviyle gerçekleştirmenin bir yolu olması muhtemeldir (özellikle kendi yuvarlanmaya hazırsanız). Umarım birisi sizin için bazı örnek kodlar gönderir.
Değilse, bu tür bir görev için NDepend ile etkilendim. Kodunuzla ilgili her tür metriği belirlemek için çok açıklayıcı, SQL benzeri bir sözdizimi yazabilir ve eşikleri temel alarak bir yapıyı uyarır veya başarısız kılabilirsiniz.
Örnekler:
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
ana konu MSTest üreten kod kapsamı sonuç dosyası bir ikili formatta olmasıdır.
http://codeexperiment.com/file.axd?file=2008%2f9%2fCodeCoverageConverter.zip
NOT: Ancak, işler VS2010 çok fazla değişmediğini varsayarak, bir XML dosyası haline dönüştürmek için bu programı kullanmak gerekir Muhtemelen karşı yeniden derlemek gerekir 'Microsoft.VisualStudio.Coverage.Analysis.dll dosyasının VS2010 sürümü.
Daha sonra, genel bir kapsam oranını hesaplamak için, bu XML dosyasının ayrıştırılması için tercih ettiğiniz yöntemini kullanarak, enstrümanlandırılmış derlemeler için her bir matematiği gerçekleştirebilirsiniz. Eğer (en azından VS2008 için) ilgilendiğiniz XPath'ler şunlardır:
/CoverageDSPriv/Module/LinesCovered
/CoverageDSPriv/Module/LinesNotCovered
saf MSBuild bu son adımı yapmak istiyorsanız, daha sonra 'XmlRead' ve 'Math'ın' görevler MSBuild Topluluk Görevler içinde bulunan kütüphane yeterli olmalıdır: Eğer bir MSBuild özelliğinde genel orana sahip kez
http://msbuildtasks.tigris.org/
, basitçe o numara istenen eşikten düşük ise yapı kırmak için bir koşullu görevi kullanın.
<Error Condition=" $(CodeCoverageRatio) < $(MinCodeCoverage) "
Text="Code Coverage is below required threshold." />
Antik soru, ancak yanıt olarak işaretlenmedi. this
'a bir göz atın.