2016-08-01 42 views
5

Meine Anwendung wurde ursprünglich nicht für die Mac-Plattform geschrieben, also hat sie ein eigenes Unit-Test-System, das über eine Kommandozeile ausgelöst werden kann. Ist es möglich, die Code Coverage-Unterstützung in Xcode zu nutzen, indem Sie sie einfach ausführen?Xcode und Code Coverage

Ich habe versucht, es als UnitTest ausführen, die die 'Haupt (...)' Funktion meiner Anwendung manuell auslöst (siehe Codeblock), aber da dieser Prozess von der Anwendung 'xctest' gestartet wird a Viele Dinge fehlen wie Ressourcen aus meinem Anwendungspaket usw. (falsche oder falsche Pfade, ...).

- (void)testExample { 
    int main(int argc, char* argv[]); 
    main(...); 
} 

Gibt es eine Möglichkeit nur Xcode zu sagen, dass meine Anwendung gestartet werden soll, so ist es ausgeben kann die Codeabdeckung, die in Xcode prüft werden kann?

Antwort

0

Ich habe keine XCode-Coverage-Tools verwendet, aber ich habe vorher gcov verwendet. Anyway in this article gibt es Informationen, wie llvm Berichterstattung erstellen. So können Sie Ihr Unit-Test-System mit den Coverage-Flags von llvm verwenden und dann den .profdata-Report mit dem llvm-profdata-Tool erstellen.

Wie ich verstehe, Xcode Code Coverage-Tool erstellt auch. Profdata Bericht und verwendet es. Ich habe keine einfache Lösung, aber Sie können etwas mit dieser Information finden. Wenn Sie einen Weg finden, Xcode dazu zu bringen, Ihre .profdata zu verwenden, ist es fertig :)