使用屏幕截图测试 UI

Testing UI with Screenshots

我正在尝试稍微自动化我的测试。 我写了一个简单的测试来截取我的应用程序

func testiPhoneVariants() {
    let screenshot = XCUIScreen.main.screenshot()
    let attachment = XCTAttachment(screenshot: screenshot)
    attachment.lifetime = .keepAlways
    add(attachment)
}

现在想在多个模拟器上测试一下,所以做了命令行:

xcodebuild -workspace MyProject.xcworkspace -scheme MyProjectUITests \
-destination 'platform=iOS Simulator,name=iPhone SE' \
-destination 'platform=iOS Simulator,name=iPhone 7' \
-destination 'platform=iOS Simulator,name=iPhone 7 Plus' \
-destination 'platform=iOS Simulator,name=iPhone X' \
test

测试运行通过了,但是我在哪里可以找到屏幕截图?

谢谢 - 约瑟夫

在你的派生数据文件夹中会有一个.xcactivitylog,一般在以下路径:

~/Library/Developer/Xcode/DerivedData//Logs/Test/

在 .xcactivitylog 文件中,将有对象包含您的屏幕截图文件的详细信息,包括它们的文件名。

您也可以将-resultBundlePath传递给xcodebuild命令来指定您希望测试结果的位置。

xcodebuild -workspace MyProject.xcworkspace -scheme MyProjectUITests \
-destination 'platform=iOS Simulator,name=iPhone SE' \
-destination 'platform=iOS Simulator,name=iPhone 7' \
-destination 'platform=iOS Simulator,name=iPhone 7 Plus' \
-destination 'platform=iOS Simulator,name=iPhone X' \
-resultBundlePath test_results \
test

您应该在 test_results 文件夹中找到所有测试结果。这还包括屏幕截图