Udostępnij za pośrednictwem


Przygotowywanie testów XCUITest do przekazania

Ważne

Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Mimo że można nadal używać programu Visual Studio App Center do momentu jego pełnego wycofania, istnieje kilka zalecanych alternatyw, do których można rozważyć migrację.

Dowiedz się więcej o osiach czasu pomocy technicznej i alternatywach.

Ten przewodnik zawiera instrukcje dotyczące przygotowywania testów XCUITest do przekazania do testu usługi App Center.

Wymagania dotyczące usługi testowej

  • Xcode >= 9.4.1
  • iOS >= 9.0

Ograniczenia usługi testowej

  • Tylko przekazana aplikacja może być testowana, a nie interakcje za pośrednictwem aplikacji lub pozostałej części systemu.

Kompilacja do testowania

Aby uruchomić test w usłudze App Center, należy skompilować aplikację i pakiet XCUITest. Uruchom jedno z dwóch następujących poleceń z katalogu głównego projektu aplikacji:

# How to build a xcodeproj
rm -rf DerivedData
xcrun xcodebuild build-for-testing \
  -configuration Debug \
  -project YOUR_XCODEPROJ \
  -sdk iphoneos \
  -scheme YOUR_APP_SCHEME \
  -derivedDataPath DerivedData

YOUR_XCODEPROJ powinien wskazywać .xcodeproj plik, prawdopodobnie zatytułowany PROJECT_NAME.xcodeproj. Jeśli używasz elementu .xcworkspace, użyj polecenia -workspace zamiast -project. YOUR_APP_SCHEME powinien być schematem używanym do kompilowania aplikacji. Domyślnie jest to zwykle nazwa aplikacji.

Narzędzie xcrun skompiluje aplikację i pakiet XCUITest do DerivedData/Build katalogu. Aplikacja i pakiet XCUITest będą znajdować się w DerivedData/Build/Products/Debug-iphoneos/ katalogu.

xcrun xcodebuild -list

Przekazywanie testów do Centrum aplikacji

Po przygotowaniu zestawu testów następnie skonfiguruj przebieg testu w celu przekazania i uruchomienia testów.

Oto przykład sposobu przekazywania pakietu XCUITest do usługi App Center Test.

# Upload your test to App Center
appcenter test run xcuitest \
  --app "APP_ID" \
  --devices "DEVICE_SET_ID" \
  --test-series "main" \
  --locale "en_US" \
  --build-dir DerivedData/Build/Products/Debug-iphoneos

Aby zapoznać się z konkretnym przykładem przesyłania testów do centrum aplikacji, zobacz ten skrypt powłoki, który przesyła testy do Centrum aplikacji.

Dodatkowe zrzuty ekranu i kroki testowania

Na końcu każdej metody testowej zrzut ekranu jest automatycznie wykonywany dla raportu testowego. Każdy zrzut ekranu jest wyświetlany w raporcie testowym usługi App Center jako oddzielny krok testu.

Działania

Dodatkowe etykiety i zrzuty ekranu dla metody testowej można wygenerować, grupując kod testowy przy użyciu firmy ActivitiesApple . Aby uzyskać więcej informacji, zobacz Grupowanie testów na podkroki za pomocą działań.

Fragment kodu do zawijania kodu testowego w działaniu

    [XCTContext
     runActivityNamed:title
     block:^(id<XCTActivity>  _Nonnull activity) {
         // test code
     }];

        XCTContext.runActivity(named: title) { (activity) in
            // test code
        }

Ręczne zrzuty ekranu

Zrzut ekranu jest generowany automatycznie dla raportu testowego na końcu każdego Activityelementu . Zrzut ekranu można zarejestrować w innym punkcie obiektu Activity , wykonując zrzut ekranu przy użyciu ekranu XCUIScreen, a następnie tworząc załącznik z aplikacją XCTAttachment i dodając go do bieżącego Activityelementu . Ten zrzut ekranu zostanie wyświetlony w raportach testowych usługi App Center zamiast domyślnego zrzutu ekranu z końca elementu Activity.

Fragment kodu do generowania i dołączania zrzutu ekranu w działaniu

         XCUIScreenshot *screenshot = [[XCUIScreen mainScreen] screenshot];
         XCTAttachment *attachment;
         attachment = [XCTAttachment attachmentWithScreenshot:screenshot];
         [attachment setLifetime:XCTAttachmentLifetimeKeepAlways];
         [activity addAttachment:attachment];
            let screenshot = XCUIScreen.main.screenshot()
            let attachment = XCTAttachment(screenshot: screenshot)
            attachment.lifetime = .keepAlways
            activity.add(attachment)