GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich Codeabdeckung für Swift-Pakete unter Linux oder OS X generieren?

Im Moment ist mir kein Tool bekannt, das Linux direkt unterstützt. Für das, was es wert ist, waren wir immer noch zufrieden mit unserer Code-Coverage-Lösung, die unser Web-Framework und unseren HTTP-Server unterstützt, der sowohl unter Linux als auch unter macOS läuft.

Unser auf dem Swift Package Manager basierendes Projekt Kitura verwendet Travis CI für die kontinuierliche Integration. Jeder Build wird beide kompilieren und testen Linux und macOS. Wir führen auch einen nächtlichen Build auf Travis CI durch, der Abdeckungsdaten generiert, die dann auf codecov.io hochgeladen werden, um Berichte wie diesen zu generieren.

Unter der Decke führt das Build-Skript swift package generate-xcodeproj aus und dann xcodebuild test mit aktivierter Codeabdeckung. Die Codeabdeckung wird nur in der macOS-Buildumgebung ausgeführt, die xcodebuild enthält . Da unsere Linux- und macOS-Codepfade sehr ähnlich sind, sind die Abdeckungsstatistiken für unsere Zwecke gut genug, und wir führen immer noch Tests für jedes Betriebssystem unabhängig durch.


Dies ist tatsächlich möglich, indem --enable-code-coverage übergeben wird bis swift test

$ swift test --enable-code-coverage

Dadurch wird ein .xctest generiert Bündel in .build/x86_64-unknown-linux/debug/ und eine profdata-Datei in .build/x86_64-unknown-linux/debug/codecov/ unter Linux, die Sie dann an llvm-cov weitergeben können um einen Bericht zu erstellen.

z. B.

$ llvm-cov report .build/x86_64-unknown-linux/debug/PredicatePackageTests.xctest -instr-profile=.build/x86_64-unknown-linux/debug/codecov/default.profdata -use-color

Dadurch wird ein Bericht wie der folgende generiert:

Siehe llvm-cov report --help Für weitere Informationen kann es sogar HTML-Berichte erstellen.


Linux
  1. Wie man RPM-Pakete baut

  2. So erstellen Sie ganz einfach Linux-Pakete mit Fpm für mehrere Plattformen

  3. Pakete für Kali Linux finden

  4. Wie kann der Magic SysRq-Schlüssel für Linux-Benutzer gefährlich sein?

  5. So generieren Sie Netflow-Daten unter Linux

So installieren Sie Anaconda unter Linux

So listen Sie installierte Pakete in Linux auf

So installieren Sie Setuptools für Python unter Linux

So listen Sie alle installierten Pakete in Linux auf

10 Beispiele zum Ausschließen von Yum zum Überspringen von Paketen für das Linux-Yum-Update (So schließen Sie Kernel-Updates von Yum aus)

Wie kann ich C++-Code profilieren, der unter Linux ausgeführt wird?