VSTS Code Coverage Bug?


3

Hat jemand erlebt this VSTS Code Coverage "bug? "Haben Sie irgendwelche Vorschläge?

I-Code-Coverage-Analyse mit Visual Studio mache, die jetzt im Allgemeinen eine einfache Aufgabe mit den Werkzeugen ist, die enthalten sind. Allerdings habe ich ein Problem, dass ich es kann Nehmen wir an, ich habe die Assemblies A, B, C und D und habe sie alle für die Coverage-Analyse markiert.Ich führe die Tests durch und schaue mir die Ergebnisse an und finde einen Bericht, der A, B und C enthält - aber nicht D. Ich untersuche und finde heraus, dass keine Tests tatsächlich irgendeinen Code in D ausführen (sagen wir, es ist das Frontend von asp.net und ich nutze die UI-Tests noch nicht). Weil es keine Tests für D gibt, die D fehlen Melden Sie den Gesamtcodeabdeckungsprozentsatz und "nicht abgedeckte Blöcke" sind falsch.

Weiß jemand, wie ich eines der folgenden Dinge tun kann?

  • Berechnen Sie die Gesamtanzahl der Blöcke in D, damit ich den Abdeckungsbericht manuell anpassen kann?
  • Lassen Sie den Abdeckungsbericht die Anzahl der Blöcke anzeigen, die nicht für Assemblys abgedeckt sind, die für die Abdeckung instrumentiert sind, aber überhaupt nicht getestet werden?
  • Während ich möchte, dass die Testabdeckung verbessert wird, analysiere ich Abdeckungsberichte, die zu historischen Zeitpunkten in der Codebasis gespeichert wurden. Daher möchte ich keinen Test erstellen, der einfach mindestens einen Block Code in jeder Assembly ausführt und die Testabdeckung durch Ausführen der Tests neu berechnet. Das wäre eine ziemlich zeitraubende Arbeit für etwas, das wie ein einfaches Problem aussieht.

    2

    Ich bin mal reingelaufen, es ist sehr nervig. In meinem Fall gab es eine Anzahl von dlls, die nicht abgedeckt waren, also schätzte ich Blöcke/kb für unsere Code-Basis, indem wir die Covered-dlls-Informationen dividiert durch ihre Größe verwendeten. Um die Anzahl der Blöcke für die unbedeckten Dlls zu erhalten, multipliziert man einfach den Durchschnitt mit der Größe der Dll. Dies ist nicht die genaueste Methode, aber Sie bekommen einen schnellen Ballpark, und Sie können Ihren Fehler bestimmen, indem Sie Ihre bekannten Dlls berechnen und mit den tatsächlichen Werten vergleichen. Es ist hilfreich, wenn Sie eine gute Anzahl von Baugruppen haben, die berechnet werden.

    Natürlich könnten Sie einfach eine LOC-Zählung durchführen (Kommentare ignorieren) und auf ein einzelnes LOC tippen, das ungefähr einem Block entspricht. Wenn ich mich recht genau daran erinnere, so sollte dich das noch näher bringen.

    Die einzige Möglichkeit, einen Bericht über nicht aufgedeckte Baugruppen zu erzwingen, besteht darin, einen Test zu schreiben, der die Assembly lädt (der Test muss nicht einmal etwas tun).

      0

    Dank, ich hatte Angst, es gab keine echte Lösung wie Sie vorgeschlagen, aber irgendwie erwartet, dass es der Fall ist. Ich hoffe, dass sich das in VS 10 ändern wird. Wenn ich eine Assembly für die Berichterstattung instrumentiere, würde ich erwarten, dass sie im Coverage-Bericht erscheint. Im Moment kann ich die Abdeckung meiner Funktionscode-Basis nicht bestimmen. 25 sep. 082008-09-25 05:29:48

      0

    Ich bin gerade von diesem Morgen erwischt worden, ich hoffe wirklich, dass sie das in VS 2010 reparieren! Es ist ziemlich irreführend, wenn man sagt, dass Sie eine 100% ige Codeabdeckung haben, wenn einige Baugruppen überhaupt nicht abgedeckt wurden! 28 jan. 102010-01-28 11:30:38