J'essaie d'échouer Construit dans le service TFS (Hébergé TFS2012) lorsque la couverture du code est inférieure à un seuil. P>
Je joue avec la solution à http://scrumdod.blogspot.co.uk/2011/04/fail-build-if-code-couverage-is-low.html P>
Cependant, j'utilise TFS2012 et que beaucoup de choses semblent avoir changé. En particulier, la configuration de la fonction de test est complètement différente et il ne semble pas être un moyen d'obtenir ou de définir l'emplacement et le nom du fichier. Coverage dans le modèle de processus de construction ou le fichier .RunSettings. P>
Comment puis-je continuer à trouver (ou à définir) l'emplacement du fichier. Coverage dans TFS2012 ou TFSSservice? P>
alternement, y a-t-il une autre façon que je puisse échouer la construction si la couverture du code est inférieure à un seuil? p>
3 Réponses :
Vous pouvez ajouter votre activité après l'activité RUNTESTS dans laquelle vous pouvez interroger le Build pour les pièces jointes de couverture de code et Fusionner et analyser les fichiers. Coverage pour réussir / échouer la construction. P>
Cela nécessitera quelques étapes:
Faire un nouveau projet dans VS2012 (j'ai appelé mes CodeCoverageLibrary référence les ensembles suivants:.. P>
Vous pouvez utiliser le code suivant:. P>
<Sequence DisplayName="Code Coverage Check" mtbwt:BuildTrackingParticipant.Importance="None"> <Sequence.Variables> <Variable x:TypeArguments="x:Double" Name="CodeCovered" /> </Sequence.Variables> <ccl:GetCodeCoverage DisplayName="Getting Code Coverage" BuildDetail="[BuildDetail]" Result="[CodeCovered]" /> <If Condition="[CodeCovered < CodeCoverageTolerance]"> <If.Then> <Sequence DisplayName="Comparing Code Coverage Against Tolerance"> <mtbwa:SetBuildProperties DisplayName="Set TestStatus to Failed" mtbwt:BuildTrackingParticipant.Importance="Low" PropertiesToSet="TestStatus" TestStatus="[Microsoft.TeamFoundation.Build.Client.BuildPhaseStatus.Failed]" /> <mtbwa:WriteBuildError Message="["Code Coverage of " + CodeCovered.ToString("P") + " is less than required " + CodeCoverageTolerance.ToString("P")]" /> </Sequence> </If.Then> </If> </Sequence> </mtbwa:AgentScope> <mtbwa:InvokeForReason DisplayName="Check In Gated Changes for CheckInShelveset Builds" Reason="CheckInShelveset"> <mtbwa:CheckInGatedChanges DisplayName="Check In Gated Changes" /> </mtbwa:InvokeForReason> </Sequence> </Activity>
Merci, je vais essayer ça!
Réponse très tardive à cela, mais j'essaie d'utiliser ces gettings dans un fichier Stand seul .exe. Cela continue de me donner des blocs Tfsbuild, ce qui me donne beaucoup de blocs non couverts :(. Puis-je m'assurer que je ne reçois que pour mes fichiers de projet, d'une manière ou d'une autre?
Une seule chose sur la solution ci-dessus, vous devez réviser le calcul comme celui-ci pour assurer une valeur de pourcentage est renvoyé à deux décimales