2014-02-17 2 views
6

Ich habe mehrere statische Bibliotheken erstellt, die von mehreren iOS-Projekten gemeinsam genutzt werden. In vielen dieser statischen Bibliotheken habe ich Komponententests erstellt. Ich möchte, dass diese Tests ausgeführt werden, wenn ich das Projekt, das die statische Bibliothek enthält, testen.So führen Sie Tests von iOS Static Library aus Ihr Projekt ist abhängig von

Ich habe versucht, alle Tests innerhalb der "Test" -Abschnitt in den wichtigsten Projekten Schema, aber dies ergibt sich in der Regel in "Simulator ist bereits in Verwendung" Fehler und die Tests fehlschlagen. Wahrscheinlich, weil die vorherigen Tests den Simulator verwenden.

scheme-tests

Haut CreatorTests sind für das Hauptprojekt

SEUSUIKitTests, APIKitTests, PurchaseKitTests und MCSkinKitTests alle Tests sind, die von angeschlossenen statischen Bibliotheken sind

Bin ich über das den richtigen Weg, oder Soll ich anders denken?

** EDIT **

Sieht aus wie dieser Stapelüberlauf Frage das gleiche Problem hat.

Xcode 5: Multiple test targets in one scheme: "Simulator already in use"

** EDIT 2 ** Radar: http://openradar.appspot.com/15153136

Antwort

2

Obwohl Ihre Unit-Tests richtig Einrichtung ist so ziemlich ein Chaos und eine Zeit Körper auf XCode (dank der sehr klare Botschaften erhalten Sie , wie Sie herausgefunden haben), in Ihrem Fall denke ich, das Problem ist Ihre Herangehensweise.

Wenn mehrere statische Bibliotheken aus mehreren Projekten verknüpft sind, sollten die Tests für die statischen Bibliotheken nicht von den Projekten ausgeführt werden, die auf sie verweisen. Jede Bibliothek sollte in sich abgeschlossen sein und eigene Tests enthalten, und sie sollten ausgeführt werden, wenn Sie etwas in dieser bestimmten Bibliothek ändern.

Die Idee ist, dass Sie nur Ihren eigenen Code testen sollten. Wenn Sie eine externe statische Bibliothek verknüpfen, ist der Autor dieser Bibliothek dafür verantwortlich, diesen Teil korrekt zu testen. Die Tatsache, dass Sie auch der Autor der externen Bibliothek sind, sollte keinen Einfluss darauf haben.

Verwandte Themen