UIAutomation mit Codeabdeckung

Ich automatisiere derzeit unsere iOS-Tests auf Jenkins. Bisher hatte ich keine Probleme damit, Unit-Tests auszuführen, OCUnit in JUnit zu konvertieren und Code-Coverage im Cobertura-Format zu generieren (viel googeln, aber keine schweren Probleme).

Beim Erstellen eines UIAutomation-Jobs stecke ich jedoch fest. Die Tests laufen erfolgreich (Aufrufinstruments von der Kommandozeile). Das Generieren von Junit-Berichten war schwierig, aber möglich. Das Problem ist, dass beim Ausführen von UIAutomation keine Code-Coverage-Dateien generiert werden.

Gibt es eine Möglichkeit, sie zu generieren? Wenn nicht, können Sie bitte erklären, warum?

Was ich bisher versucht habe:

Anhängen von UIAutomation an eine bereits laufende Anwendung im iOS-Simulator.das scheint unmöglich. Entweder wird die laufende Anwendung von Instrumenten beendet und eine neue Instanz neu gestartet, oder es wird eine kryptische Fehlermeldung ausgegeben.Beenden Sie den Simulator am Ende von js script mit einer Kombination aus osascript undUIAHost. performTaskWithPathArgumentsTimeout.Die Anwendung wurde ordnungsgemäß beendet, es wurde jedoch keine Abdeckung generiert.

Bearbeiten Nach einigen Tests mit einem anderen Framework wurde mir klar, dass es nicht ausreicht, den Simulator zu beenden, sondern dass Sie ihn explizit aufrufen müssenexit() aus der Anwendung. Bei der Benutzeroberflächenautomatisierung ist dies etwas schwierig, Sie können jedoch ein Anwendungsschema deklarieren, z.my-app://exit und rufen Sie es über MobileSafari mitUIAHost.performTaskWithPathArgumentsTimeout. Überprüft, ob dies ausreicht, um die Dateien zu generieren.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage