Przygotowywanie testów XCUITest do przekazania
Ważne
Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Mimo że możesz nadal używać programu Visual Studio App Center do momentu jej 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 na potrzeby przekazywania do testu centrum aplikacji.
Wymagania dotyczące usługi testowej
- Xcode >= 9.4.1
- iOS >= 9.0
Uwaga
Program Xcode 12 i iOS 14 są teraz dostępne!
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, musisz skompilować aplikację i pakiet XCUITest. Uruchom jedno z dwóch następujących poleceń z katalogu głównego katalogu 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
powinna 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.
Program 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 skonfiguruj przebieg testu , aby przekazać i uruchomić testy.
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 usługi App Center, 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 testu zrzut ekranu jest automatycznie wykonywany dla raportu testowego. Każdy zrzut ekranu jest wyświetlany w raporcie testowym centrum aplikacji jako osobny krok testu.
Działania
Możesz wygenerować dodatkowe etykiety i zrzuty ekranu dla metody testowej, grupując kod testowy przy użyciu firmy Apple Activities
. 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, Activity
wykonując zrzut ekranu przy użyciu ekranu XCUIScreen, a następnie tworząc załącznik z dołączaniem XCTA i dodając go do bieżącego Activity
elementu . Ten zrzut ekranu zostanie wyświetlony w raportach testowych centrum aplikacji 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)