Vorbereiten von XCUITest-Tests für den Upload
Wichtig
Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie möglicherweise eine Migration in Erwägung ziehen.
Dieser Leitfaden enthält Anweisungen zum Vorbereiten von XCUITest-Tests für das Hochladen in App Center Test.
Testdienstanforderungen
- Xcode >= 9.4.1
- iOS >= 9.0
Hinweis
Xcode 12 und iOS 14 sind jetzt verfügbar!
Testen von Dienstbeschränkungen
- Es kann nur die hochgeladene App getestet werden, nicht Interaktionen über Apps oder den Rest des Systems.
Build For Testing
Zum Ausführen eines Tests in App Center müssen Sie Ihre Anwendung und ein XCUITest-Bundle erstellen. Führen Sie einen der beiden folgenden Befehle aus dem Stammverzeichnis Ihres Anwendungsprojektverzeichnisses aus:
# 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
sollte auf eine .xcodeproj
Datei verweisen, die wahrscheinlich den Titel hat PROJECT_NAME.xcodeproj
. Wenn Sie einen .xcworkspace
verwenden, verwenden Sie -workspace
anstelle von -project
. YOUR_APP_SCHEME
sollte das Schema sein, das Sie zum Erstellen Ihrer Anwendung verwenden. Standardmäßig ist dies in der Regel der Name Ihrer Anwendung.
Der xcrun erstellt Ihre App und ein XCUITest-Bundle in das DerivedData/Build
Verzeichnis. Ihre App und das XCUITest-Bundle befinden sich im DerivedData/Build/Products/Debug-iphoneos/
Verzeichnis.
xcrun xcodebuild -list
Hochladen von Tests in App Center
Sobald eine Testsuite vorbereitet ist, richten Sie als Nächstes eine Testausführung ein , um Ihre Tests hochzuladen und auszuführen.
Hier sehen Sie ein Beispiel dafür, wie Sie Ihre XCUITest-Suite in App Center Test hochladen können.
# 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
Ein konkretes Beispiel für das Übermitteln von Tests an App Center finden Sie in diesem Shellskript, das Tests an App Center übermittelt.
Zusätzliche Screenshots und Testschritte
Am Ende jeder Testmethode wird automatisch ein Screenshot für den Testbericht erstellt. Jeder Screenshot wird im App Center-Testbericht als separater Testschritt angezeigt.
activities
Sie können zusätzliche Bezeichnungen und Screenshots für eine Testmethode generieren, indem Sie Ihren Testcode mithilfe von Apple gruppieren Activities
. Weitere Informationen finden Sie unter Gruppieren von Tests in Teilschritte mit Aktivitäten.
Codeausschnitt zum Umschließen von Testcode in einer Aktivität
[XCTContext
runActivityNamed:title
block:^(id<XCTActivity> _Nonnull activity) {
// test code
}];
XCTContext.runActivity(named: title) { (activity) in
// test code
}
Manuelle Screenshots
Ein Screenshot wird automatisch für den Testbericht am Ende jedes Activity
generiert. Sie können einen Screenshot an einem anderen Punkt in einem Activity
aufzeichnen, indem Sie einen Screenshot mit XCUIScreen erstellen, dann eine Anlage mit XCTAttachment erstellen und sie dem aktuellen Activity
hinzufügen. Dieser Screenshot wird in App Center-Testberichten anstelle des Standardfotos vom Ende des Activity
angezeigt.
Codeausschnitt zum Generieren und Anfügen eines Screenshots in einer Aktivität
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)