Come si può causare un errore di compilazione quando la copertura del codice è inferiore a una determinata soglia?TFS 2010 RC: Come fallire una build per la copertura di basso codice?
risposta
C'è molto probabilmente un modo per farlo con un'attività di compilazione (in particolare se si desidera eseguire il rollover). Spero che qualcuno pubblichi un codice di esempio per te.
In caso contrario, sono stato impressionato con NDepend per questo tipo di attività. È possibile scrivere in una sintassi di tipo SQL molto intuitiva per determinare tutti i tipi di metriche sul proprio codice e avvisare o fallire una build basata su soglie.
Esempi:
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
Il problema principale è che il file dei risultati di copertura del codice che MSTest produce è in formato binario. Tuttavia, supponendo che le cose non sono cambiate troppo in VS2010, si dovrebbe essere in grado di utilizzare questa utilità per convertirlo in un file XML:
http://codeexperiment.com/file.axd?file=2008%2f9%2fCodeCoverageConverter.zip
NOTA: Avrete probabilmente bisogno di ricompilare contro la versione VS2010 di 'Microsoft.VisualStudio.Coverage.Analysis.dll.
È quindi possibile utilizzare il metodo preferito per analizzare il file XML, eseguendo i calcoli matematici per ciascuno degli assembly strumentati per calcolare un indice di copertura generale. I XPaths che vi interessano (almeno per VS2008) sono:
/CoverageDSPriv/Module/LinesCovered
/CoverageDSPriv/Module/LinesNotCovered
Se si vuole fare questo ultimo passo in puro MSBuild, poi il 'XMLRead' e compiti 'matematica' contenuti all'interno dei task MSBuild comunitari biblioteca dovrebbe essere sufficiente:
http://msbuildtasks.tigris.org/
una volta che avete il rapporto complessivo in una proprietà MSBuild, è quindi sufficiente utilizzare un compito condizionale per rompere la build se tale numero è inferiore soglia desiderata.
<Error Condition=" $(CodeCoverageRatio) < $(MinCodeCoverage) "
Text="Code Coverage is below required threshold." />
Domanda antica, ma non contrassegnata come risposta. Date un'occhiata a this
- 1. Automazione build TFS 2010 - Abilitazione della copertura del codice
- 2. Come posso copiare una definizione di build TFS 2010?
- 3. Organizzazione del codice sorgente in TFS 2010
- 4. Metriche di codice in esecuzione in build per TFS 2012
- 5. aggiornamento TFS 2010 e TFS 2012 RC a TFS 2012 finale
- 6. Come fallire la compilazione da un'attività PowerShell in TFS 2015
- 7. TFS Build Test Results
- 8. Utilizzo di Gallio/Mbunit con TFS 2010 Team Build
- 9. Test di copertura del codice in Visual Studio 2010? Come?
- 10. Come fallire la compilazione quando c'è un nuovo codice scoperto?
- 11. Abilita la copertura del codice in VS 2010 definitivo
- 12. Come forzare la revisione del codice prima del check-in in TFS 2012 RC?
- 13. API TFS 2010, determinare su quale build è in esecuzione una build.
- 14. non possibile utilizzare codice funzione recensione in TFS 2012 RC
- 15. Impossibile risolvere la risorsa (VS 2010 RC)
- 16. Personalizza Riepilogo Costruisci TFS 2010
- 17. Qualsiasi plugin di copertura del codice .net per Visual Studio 2010?
- 18. Come eseguire una compilazione automatizzata in TFS 2010 con un'etichetta
- 19. Codice di condivisione tra i progetti in tfs 2010
- 20. Come posso far apparire una build di TeamCity in TFS Build Explorer?
- 21. Ottieni il numero di changeset di una build innescata in TFS 2010
- 22. Come concatenare le build TFS?
- 23. Nunit e copertura di codice per C#
- 24. Visual Studio 2010 RC è pronto per la produzione?
- 25. TFS 2010 - riga di comando per la conversione in filiale
- 26. Migrazione da TFS 2010 a TFS 2012
- 27. TFS 2012 per supportare Test Controller 2010
- 28. Nodejs Definizione build TFS
- 29. Risorse API TFS 2010
- 30. TFS 2010 e "costruire una volta, distribuire molti"