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 Activities
Apple . 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 Activity
elementu . 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 Activity
elementu . 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)