Codeabdeckung

Abdeckungsdaten importieren und analysieren

Dieses Dokument erklärt die Verwendung der CppDepend-Build-Vergleichsfunktionen im Kontext der interaktiven Oberfläche. Das Dokument Reporting Code Diff erklärt die Verwendung der CppDepend-Build-Vergleichsfunktionen im Kontext der Berichterstattung.

Welche Abdeckungstechnologie wird von CppDepend unterstützt?

CppDepend kann Abdeckungsdaten importieren aus:

  • Bullseye Abdeckungsdateien
  • Cobertura
  • Visual Studio Team System
  • CTC++

Wie erhält man XML-Abdeckungsdateien aus Microsoft Visual Studio?

Visual Studio hat 2 Abdeckungsdateiformate.

  • Ein Binärformat wobei die Dateiendung .coverage. Dies ist das Format, das Sie beim Testen aus Visual Studio erhalten. Alternativ können Sie auch das Tool VSPerfMon.exe verwenden, um eine .coverage-Datei zu erhalten. Dazu müssen Sie jedes zu erfassende Projekt mit dem Tool VSInstr.exe und der Option /Coverage instrumentieren.
  • Ein XML-Format (mit der Dateiendung .coveragexml seit VS 2010, und .xml für frühere Versionen)

CppDepend verarbeitet nur das XML-Format. Sie können XML-Abdeckungsdateien manuell aus binären Abdeckungsdateien von Visual Studio exportieren — mit dieser Option:

Sehen Sie sich das folgende Code-Snippet an: Es braucht 3 Codezeilen, um eine binäre Abdeckungsdatei programmgesteuert in eine XML-Abdeckungsdatei umzuwandeln.

  • Dazu müssen Sie in Ihrem Projekt die Assembly referenzieren: Microsoft.VisualStudio.Coverage.Analysis.dll:
    • Eine x86-Version dieser DLL finden Sie unter C:\Program Files (x86)\Microsoft Visual Studio XX.0\Common7\IDE\PrivateAssemblies
    • Eine x64-Version dieser DLL finden Sie auf einem x64-Server mit installiertem TFS unter C:\Program Files\Microsoft Team Foundation Server XX.0\Application Tier\TFSJobAgent\Plugins
  • Beide System.Data und System.Data.DataSetExtensions muss ebenfalls referenziert werden.
  • Und wenn Ihr Code unabhängig von einer VS- oder TFS-Installation sein soll, müssen Sie ebenfalls bereitstellen: Microsoft.VisualStudio.Coverage.Interop.dll die verwendet wird von Microsoft.VisualStudio.Coverage.Analysis.dll.
using Microsoft.VisualStudio.Coverage.Analysis;
...
   var pathInBinary = @"C:\Dir\File.coverage";
   var pathOutXml = @"C:\Dir\File.coveragexml";
   var coverageInfo = CoverageInfo.CreateFromFile(pathInBinary);
   var data = coverageInfo.BuildDataSet();
   data.WriteXml(pathOutXml);

Wie erhält man XML-Abdeckungsdateien aus CTC++?

Sie können das Ctc2cob Tool, das Testwell-CTC++-Berichte in Cobertura-ähnliche XML-Berichte konvertiert.

Wie stellt man eine Liste zu parsender Abdeckungsdateien bereit?

Im VisualCppDepend-Menü: Projekteigenschaften > Analyse > Codeabdeckung > Einstellungen

Wie importiert man Abdeckungsdaten in die Analyseergebnisse?

Im VisualCppDepend-Menü: Coverage > Codeabdeckungsdaten importieren

oder

Im Visual-Studio-Menü: CppDepend > Coverage > Codeabdeckungsdaten importieren

Testen Codeabdeckung mit CppDepend

Starten Sie Ihre 14-tägige kostenlose Testphase mit vollem Zugriff auf alle Funktionen. Keine Kreditkarte erforderlich.