Z tego przewodnika dowiesz się, jak przygotować XCTest do testów w Laboratorium Firebase.
Krok 1. Skonfiguruj lokalizację projektu Derived Data
Xcode umieszcza skompilowane artefakty iOS, w tym wszystkie Twoje testy, w katalogu Derived Data. W razie potrzeby możesz zachować domyślną lokalizację tego katalogu, ale często lepiej jest wybrać łatwiej dostępne miejsce na pliki, zwłaszcza jeśli zamierzasz przeprowadzać testy w Laboratorium:
- Otwórz swój projekt w Xcode.
- Na pasku menu systemu macOS kliknij Plik > Ustawienia projektu...
- Zmień ustawienie w menu Derived Data (Dane pochodne) z Default Location (Lokalizacja domyślna) na Custom Location (Lokalizacja niestandardowa).
- W polu poniżej menu wybierz lokalizację, w której Xcode będzie umieszczać testy. (To jest FOLDER_WITH_TEST_OUTPUT)
Krok 2. Utwórz ogólny plik testowy
Laboratorium uruchamia testy jednostkowe i UI za pomocą platformy XCTest. Aby przeprowadzić testy XCTest aplikacji na urządzeniach Test Lab, skompiluj ją na potrzeby testowania na ogólnym urządzeniu z iOS:
- Z menu urządzenia u góry okna obszaru roboczego Xcode wybierz Standardowe urządzenie z iOS.
- Na pasku menu systemu macOS wybierz Product > Kompilacja dla > Testowanie.
Zamiast tego możesz utworzyć XCTest z poziomu wiersza poleceń. W terminalu wpisz to polecenie:
projekt
xcodebuild -project PATH/TO/YOUR_WORKSPACE/YOUR_PROJECT.xcodeproj \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
obszar roboczy
xcodebuild -workspace PATH/TO/YOUR_WORKSPACE.xcworkspace \ -scheme YOUR_SCHEME \ -derivedDataPath FOLDER_WITH_TEST_OUTPUT \ -sdk iphoneos build-for-testing
Krok 3. Podpisz test i potwierdź go
Upewnij się, że wszystkie artefakty w aplikacji i teście są podpisane. Możesz to zrobić na przykład za pomocą Xcode, określając ustawienia podpisywania, takie jak profil obsługi administracyjnej i tożsamość. Więcej informacji znajdziesz w artykule o podpisywaniu kodu przez Apple.
Sprawdź podpis aplikacji, uruchamiając polecenie
codesign --verify --deep --verbose /path/to/MyApp.app
, gdzie „MojaAplikacja” to nazwa aplikacji z rozpakowanego folderu. To zależy od projektu. Oczekiwane dane wyjściowe toMyApp.app: valid on disk
.Jeśli wykonujesz test XCUITest, musisz zweryfikować zarówno test, jak i program uruchamiający, uruchamiając polecenie
codesign --verify --deep --verbose /path/to/MyTest-Runner.app
, gdzie „MyTest” to nazwa biegu znajdującego się w rozpakowanym folderze. To zależy od projektu. Oczekiwane dane wyjściowe toMyTest-Runner.app: valid on disk
.
Krok 4. Spakuj aplikację i przetestuj ją pod kątem przesyłania
Po skompilowaniu testu spakuj go do formatu .zip i prześlij do Laboratorium:
cd FOLDER_WITH_TEST_OUTPUT/Build/Products : \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
Test możesz też spakować poprzez ręczne skompresowanie plików testowych:
Otwórz Findera i przejdź do strony
FOLDER_WITH_TEST_OUTPUT
.Otwórz folder, którego prefiks jest nazwą Twojego projektu, i przejdź do znajdującego się w nim folderu
Build/Products
.Wybierz foldery
Debug-iphoneos
iYOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
, a następnie je skompresuj.
Krok 5. (Opcjonalnie) Przeprowadź test lokalnie
Zanim przeprowadzisz test w Laboratorium, możesz uruchomić go lokalnie na urządzeniu podłączonym do USB, aby sprawdzić jego jakość:
xcodebuild test-without-building \ -xctestrun "Derived Data/Build/Products/YOUR_SCHEME.xctestrun" \ -destination id=your-phone-id
Dalsze kroki
Prześlij i uruchom test w konsoli Firebase lub w gcloud CLI.