Meine App besteht aus vielen Projekten (Frameworks), einem für jedes Hauptfeature und einem gemeinsamen Framework mit allen möglichen Dingen, auf die ich in mehreren meiner Features zugreifen muss.
Ich verwende den Swift Package Manager von Xcode 11, um Abhängigkeiten hinzuzufügen.
Das gemeinsame Framework enthält eine RxSwift-Abhängigkeit, die ich im gesamten Projekt verwende.
Ich habe Probleme, wenn ich versuche, RxTest in einem meiner Feature-Frameworks zu verwenden.
Wenn ich RxTest über SPM direkt zum Testziel hinzufüge und die Tests ausführe, erhalte ich
Die Superklasse 'Klassenname' konnte nicht aus dem verstümmelten Namen 'Anderer Klassenname' entfernt werden.
und viele
Die Klasse 'Klassenname' ist sowohl im 'Common Framework Path' als auch im 'Test Target Path' implementiert.
wo alle diese Klassen Rx-bezogen sind. Der Fehler "Fehler beim Entwirren" stürzt den Test ab und tritt nur auf, wenn ich versuche, eine RxTest-Klasse zu initialisieren.
Wenn ich RxTest zum allgemeinen Framework hinzufüge, laufen die Tests einwandfrei, aber wenn ich die App ausführe, bekomme ich
dyld: Bibliothek nicht geladen: @ rpath / XCTest.framework / XCTest
Was Sinn macht, weil ich einem Nicht-Test-Framework ein Test-Framework hinzufüge und es nicht gut ist, dies zu tun.
Im Grunde konnte ich keine Konfiguration erhalten, in der sowohl die Tests als auch die App einwandfrei funktionieren. Entweder wird die App ausgeführt oder die Tests werden ausgeführt.
Wie kann ich das zum Laufen bringen? Gibt es eine Möglichkeit, RxTest nur dann in das allgemeine Framework aufzunehmen, wenn ich es auf einem Testziel aufbaue? Oder sollte RxTest nur in den Testzielen enthalten sein und mir fehlt eine Konfiguration?