2013-07-15 10 views
6

Jak dokonać dynamicznego ładowania hosta testowego/pakietu w oparciu o bieżący schemat? Teraz wartość jest ustawiona na:Dynamiczny "host testowy" lub moduł pakujący do testowania jednostek iOS?

$(BUILT_PRODUCTS_DIR)/MyApp1.app/MyApp1 

Problem mam 4 aplikacje w obszarze roboczym i chciałbym używać tego samego pakietu testów jednostkowych dla nich wszystkich. Jak mogę dynamicznie zmieniać część "MyApp1" na podstawie bieżącego schematu? Czy jest to zmienna środowiskowa oparta na kompilacji? Próbowałem ustawić go na rzeczy takie jak $ (PROJECT_NAME), ale wydaje się, że otrzymałem nazwę zestawu testów.

+0

Mam do czynienia z tym samym problemem. Mam kilka celów, w których chcę wykonać ten sam test docelowy. Oczywiście, że zbyt wiele też obsługuje Xcode. Moim rozwiązaniem było dodanie skryptu, aby zmienić XCodeProject, a następnie wybrać odpowiednią aplikację. –

Odpowiedz

7

Aby to zrobić, musisz mieć zmienną wewnątrz ustawień kompilacji - co wydaje się proste, ale tak nie jest. Jeśli ustawisz zmienną środowiskową przez pre- lub post-step w aplikacji lub schemacie testowym, nie wydaje się, że zostanie ona pobrana tutaj. W końcu ustawienia kompilacji mają miejsce przed kompilacją. To samo dotyczy makra preprocesora, ale można to zrobić za pomocą xcodebuild i przekazanie niestandardowej opcji może działać.

Jedyny sposób, w jaki o tym wiem, to użycie pliku xcconfig. Utwórz jeden i zastosuj go (przynajmniej) do celu testowego. Zawartość powinna zawierać coś takiego: THINGUNDERTEST=FooBar

Teraz w ustawieniach projektu, pogoda w xcconfig lub pliku projektu, zestaw BUNDLER_LOADER do: $(BUILT_PRODUCTS_DIR)/$(THINGUNDERTEST).app/$(THINGUNDERTEST)

który będzie działał. Teraz możesz zmienić THINGUNDERTEST na różne sposoby i uzyskać co najmniej pewne dynamiczne zachowanie. To może działać dla ciebie lub nie, w zależności od twoich potrzeb - ale to prawdopodobnie tylko punkt wyjścia.

+0

W moim przypadku mój cel testowy wymaga aplikacji hosta. Tak więc 'BUNDLER_LOADER' odczytuje wartość z' TEST_HOST'. Dlatego ustawiam '$ (BUILT_PRODUCTS_DIR)/$ (THINGUNDERTEST) .app/$ (THINGUNDERTEST)' na 'TEST_HOST'. – Hlung

+0

To rzeczywiście działa. W moim przypadku przesyłałem dynamicznie rozwiązaną wartość '' 'THINGUNDERTEST''' do aplikacji jako argument wiersza poleceń xctool. To samo powinno działać dla xcodebuild. Na przykład. '' 'xcodebuild THINUNDERTEST = Test MyApp''' –

Powiązane problemy