2016-04-27 18 views
9

Ich habe die Code-Abdeckung in der Build-Definition für ein Projekt in TFS aktiviert. Code-Abdeckung funktioniert nicht TFS-Build

Es wird wie erwartet aufgebaut, die Komponententests laufen ebenfalls, aber die Codeabdeckung zeigt "No build coverage data available" (siehe Abbildung unten).

enter image description here

Jede Hilfe ist willkommen.

+0

Sorry, wenn dies eine dumme Frage zu Ihnen ist. Aber du hast deine Lizenzversion nicht erwähnt. Wie ich es verstanden habe, ist MS Code Coverage nur für die Enterprise Version von VS/TFS verfügbar. Ich fand es immer sehr verwirrend, dass das Feature angekreuzt werden kann, aber in der Professional-Version keine Ergebnisse zeigt. –

+0

@RobertK danke für das Feedback. In unserer TFS-Version steht "Team Foundation Server 2015". Ich denke nicht, dass wir die Enterprise Edition des TFS haben. – mahfuz01

+2

Ich denke, dass es auf TFS keine Prof/Enterprise-Variante gibt.Aber es würde mindestens eine Enterprise Edition von Visual Studio auf seinem Build Agent benötigen. Um dies zu umgehen verwende ich die Open-Source-Alternative [OpenCover] (https://github.com/OpenCover/opencover). Und ich habe ein kleines "Lernprojekt" geschrieben, um dies mit TFS 2015 zu integrieren. Wenn Sie interessiert sind, versuchen Sie es und/oder kommen Sie mit mir dorthin ;-): https://github.com/RobertK66/vsts-opencover –

Antwort

2

Testen Sie einfach auf meiner Seite, Code Coverage ist wie erwartet verfügbar. Ich möchte meine Schritte für Ihre Referenz teilen:

  1. Erstellen Sie eine Standard Visual Studio Vorlage.

  2. Geben Sie die Lösung in Visual Studio Build Aufgabe, und prüfen Sie den Code Coverage in Visual Studio Test Aufgabe aktiviert. Sehen Sie sich die Screenshots unten:

enter image description here

enter image description here

Weitere Einstellungen nicht geändert werden.

  1. Queue zu bauen, dann kann ich das Code Coverage siehe zeigt auf Build Zusammenfassung:

enter image description here

By the way, ich bin mit TFS 2015 Update2 .

+2

Hallo @ cece-msft, genau das habe ich für meine Projekte getan. spezifizierte den Lösungspfad, wählte sogar die test.dll aus, um zu laufen. Ich habe irgendwo gefunden, dass die Tests MSTest, nUnit oder xUnit Tests sein müssen. Ich habe auch alle meine Tests zu MSTest umgewandelt. Immer noch kein Glück. es wird ein bisschen frustrierend – mahfuz01

+0

Welche Art von Projekt testen Sie? Code Coverage Enabled wird nur für .NET- und C++ - Projekte unterstützt. Sie können versuchen, ein Lichtprojekt zu erstellen, um diese Funktion zu testen. –

+0

Hi @ cece-msft Meine Lösung ist eine MVC 4.5-Webanwendung, aber die Komponententests werden auf der Business-Schicht (Klassenbibliothek) durchgeführt. Ich denke nicht, dass es ein Problem für die Codeabdeckung ist, da ich Resharper verwenden kann, um die Codeabdeckung zu erhalten, aber der Projektmanager möchte es auch in der tfs-Webansicht anzeigen. – mahfuz01

5

Das Coverage-Ergebnis ist nur eine Datei mit *.coverage Erweiterung.

So aktivieren Sie Code Coverage Enabled Kontrollkästchen ist nicht genug. Dieses Kontrollkästchen ermöglicht die Berechnung der Codeabdeckung und das Erstellen dieser Datei.

Um diese *.coverage Datei jedoch an einen Build anzuhängen, müssen Sie auch das Kontrollkästchen Upload Test Attachments unter Reporting Options aktivieren. Bitte beachten Sie das Bild im Anhang.

Reporting Options: Upload Test Attachments Dieses Kontrollkästchen aktiviert genau das, was Sie brauchen, wird Abdeckung Ergebnis mit dem Build veröffentlichen.

Und das letzte Protokoll wie folgt aussehen sollte:

2016-10-17T15:47:03.6834453Z Attachments: 
2016-10-17T15:47:03.6834453Z TFSBUILD 2016-10-17 11_46_53.coverage 
2016-10-17T15:47:03.6834453Z Total tests: Passed: Failed: Skipped: 
2016-10-17T15:47:03.6834453Z Test Run Successful.