![Page 1: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/1.jpg)
© 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.
Developer Tools #WWDC16
Session 409
Advanced Testing andContinuous Integration
Zoltan Foley-Fisher Xcode EngineerEric Dudiak Xcode Engineer
![Page 2: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/2.jpg)
![Page 3: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/3.jpg)
![Page 4: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/4.jpg)
![Page 5: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/5.jpg)
![Page 6: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/6.jpg)
Agenda
![Page 7: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/7.jpg)
Agenda
Testing Concepts
![Page 8: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/8.jpg)
Agenda
Testing Concepts
Xcode• Crash Log Gathering
![Page 9: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/9.jpg)
Agenda
Testing Concepts
Xcode• Crash Log Gathering
Xcode Server• Advanced Triggers• Issue Tracking and Blame• Configurable Integration User
![Page 10: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/10.jpg)
Agenda
Testing Concepts
Xcode• Crash Log Gathering
Xcode Server• Advanced Triggers• Issue Tracking and Blame• Configurable Integration User
xcodebuild
![Page 11: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/11.jpg)
Overview
![Page 12: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/12.jpg)
Overview
![Page 13: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/13.jpg)
![Page 14: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/14.jpg)
Testing frameworkXCTest
![Page 15: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/15.jpg)
Testing frameworkXCTest
Sources
TestClassA.m
TestClassB.swift
TestClassC.swift
![Page 16: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/16.jpg)
Testing frameworkXCTest
Compile
Build Products
UI.xctest
Unit.xctest
Sources
TestClassA.m
TestClassB.swift
TestClassC.swift
![Page 17: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/17.jpg)
![Page 18: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/18.jpg)
Test harnessXcode
![Page 19: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/19.jpg)
Test harnessXcode
Author tests
![Page 20: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/20.jpg)
Test harnessXcode
Author testsExecute tests
![Page 21: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/21.jpg)
Test harnessXcode
Author testsExecute testsReview reports
![Page 22: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/22.jpg)
![Page 23: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/23.jpg)
Continuous IntegrationXcode Server
![Page 24: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/24.jpg)
Continuous IntegrationXcode Server
Schedules bot runs
![Page 25: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/25.jpg)
Continuous IntegrationXcode Server
Schedules bot runsGenerates reports
![Page 26: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/26.jpg)
Continuous IntegrationXcode Server
Schedules bot runsGenerates reportsSends notifications
![Page 27: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/27.jpg)
![Page 28: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/28.jpg)
Command line toolxcodebuild
![Page 29: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/29.jpg)
Command line toolxcodebuild
Used by Xcode Server
![Page 30: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/30.jpg)
Command line toolxcodebuild
Used by Xcode ServerBuild and execute tests
![Page 31: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/31.jpg)
Command line toolxcodebuild
Used by Xcode ServerBuild and execute testsFor custom CI systems
![Page 32: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/32.jpg)
Previous Years’ Sessions
Testing with Xcode 6 WWDC 2014
Continuous Integration with Xcode 6 WWDC 2014
UI Testing in Xcode WWDC 2015
CI and Code Coverage in Xcode WWDC 2015
![Page 33: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/33.jpg)
Testing Concepts
![Page 34: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/34.jpg)
Behind the scenesHow Testing Works
MyTests.xctest MyApp.app
![Page 35: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/35.jpg)
Fundamental conceptsTesting Timeline
Compilation Hosting Observation
![Page 36: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/36.jpg)
How testing startsTest Hosting
Unit Tests UI Tests
![Page 37: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/37.jpg)
How testing startsTest Hosting
MyApp.app
Unit Tests UI Tests
![Page 38: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/38.jpg)
How testing startsTest Hosting
MyApp.app
Unit Tests UI Tests
![Page 39: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/39.jpg)
How testing startsTest Hosting
MyApp.app
Unit Tests UI Tests
Host Application
![Page 40: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/40.jpg)
How testing startsTest Hosting
MyApp.app UI Test Runner MyApp.app
Unit Tests UI Tests
Host Application
![Page 41: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/41.jpg)
How testing startsTest Hosting
MyApp.app UI Test Runner MyApp.app
Unit Tests UI Tests
Host Application
![Page 42: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/42.jpg)
How testing startsTest Hosting
MyApp.app UI Test Runner MyApp.app
Unit Tests UI Tests
Host Application Target Application
![Page 43: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/43.jpg)
ComparisonTest Hosting
Unit Tests UI Tests
Direct access to host app data and APIs Uses Accessibility to access target app
All tests run in single app launch Tests launch app for every test case
![Page 44: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/44.jpg)
ComparisonTest Hosting
Unit Tests UI Tests
Direct access to host app data and APIs Uses Accessibility to access target app
All tests run in single app launch Tests launch app for every test case
![Page 45: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/45.jpg)
Fundamental conceptsTesting Timeline
Compilation Hosting
![Page 46: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/46.jpg)
Fundamental conceptsTesting Timeline
Compilation Hosting Observation
![Page 47: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/47.jpg)
Test case structureTest Observation
![Page 48: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/48.jpg)
Test case structureTest Observation
Test Case 1 Test Case 2
![Page 49: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/49.jpg)
Test case structureTest Observation
Test Suite A
![Page 50: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/50.jpg)
Test case structureTest Observation
Test Suite A Test Suite B
![Page 51: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/51.jpg)
Test case structureTest Observation
Test Suite A Test Suite B
Test Bundle
![Page 52: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/52.jpg)
Test case structureTest Observation
Setup or tear down work
Test Suite A Test Suite B
Test Bundle
![Page 53: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/53.jpg)
Test case structureTest Observation
Setup or tear down workCustom logging
Test Suite A Test Suite B
Test Bundle
![Page 54: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/54.jpg)
XCTestObservation ProtocolTest Observation
Test Suite A Test Suite B
Test Bundle
optional public func testBundleWillStart(_ testBundle: AnyObject!)
BUNDLE WILL START
![Page 55: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/55.jpg)
XCTestObservation ProtocolTest Observation
Test Suite A Test Suite B
Test Bundle
optional public func testSuiteWillStart(_ testSuite: AnyObject!)
SUITE WILL START
![Page 56: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/56.jpg)
XCTestObservation ProtocolTest Observation
Test Suite A Test Suite B
Test Bundle
optional public func testCaseWillStart(_ testCase: AnyObject!)
CASE WILL START
![Page 57: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/57.jpg)
XCTestObservation ProtocolTest Observation
Test Suite A Test Suite B
Test Bundle
optional public func testCaseDidFinish(_ testCase: AnyObject!)
CASE DID FINISH
![Page 58: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/58.jpg)
XCTestObservation ProtocolTest Observation
Test Suite A Test Suite B
Test Bundle
optional public func testCase(_ testCase: AnyObject!, didFailWithDescription
description: AnyObject!, inFile filePath: AnyObject!, atLine lineNumber: AnyObject!)
CASE DID FAIL
![Page 59: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/59.jpg)
XCTestObservation ProtocolTest Observation
Test Suite A Test Suite B
Test Bundle
optional public func testSuiteDidFinish(_ testSuite: AnyObject!)
SUITE DID FINISH
![Page 60: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/60.jpg)
XCTestObservation ProtocolTest Observation
Test Suite A Test Suite B
Test Bundle
optional public func testBundleDidFinish(_ testBundle: AnyObject!)
BUNDLE DID FINISH
![Page 61: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/61.jpg)
// Test Observation // Example LoggingObserver
class LoggingObserver: NSObject, XCTestObservation {
}
![Page 62: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/62.jpg)
// Test Observation // Example LoggingObserver
class LoggingObserver: NSObject, XCTestObservation { override init() { super.init() let sharedCenter = XCTestObservationCenter.shared() sharedCenter.addTestObserver(self) }
}
![Page 63: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/63.jpg)
// Test Observation // Example LoggingObserver
class LoggingObserver: NSObject, XCTestObservation { override init() { super.init() let sharedCenter = XCTestObservationCenter.shared() sharedCenter.addTestObserver(self) } internal func testBundleWillStart(_ testBundle: Bundle) { print("Lights down, show is about to start") }
}
![Page 64: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/64.jpg)
// Test Observation // Example LoggingObserver
class LoggingObserver: NSObject, XCTestObservation { override init() { super.init() let sharedCenter = XCTestObservationCenter.shared() sharedCenter.addTestObserver(self) } internal func testBundleWillStart(_ testBundle: Bundle) { print("Lights down, show is about to start") } internal func testCase(_ testCase: AnyObject!, didFailWithDescription description: AnyObject!, inFile filePath: AnyObject!, atLine lineNumber: AnyObject!) print("That sounds off key…") }
}
![Page 65: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/65.jpg)
// Test Observation // Example LoggingObserver
class LoggingObserver: NSObject, XCTestObservation { override init() { super.init() let sharedCenter = XCTestObservationCenter.shared() sharedCenter.addTestObserver(self) } internal func testBundleWillStart(_ testBundle: Bundle) { print("Lights down, show is about to start") } internal func testCase(_ testCase: AnyObject!, didFailWithDescription description: AnyObject!, inFile filePath: AnyObject!, atLine lineNumber: AnyObject!) print("That sounds off key…") } internal func testBundleDidFinish(_ testBundle: Bundle) { print("Lights up, don’t forget your coat!") } }
![Page 66: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/66.jpg)
Use NSPrincipalClassTest Observation
![Page 67: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/67.jpg)
Use NSPrincipalClassTest Observation
Test Bundle Info.plist
![Page 68: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/68.jpg)
Use NSPrincipalClassTest Observation
Test Bundle Info.plistTest specific instantiation
![Page 69: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/69.jpg)
SummaryTesting Concepts
Compilation Hosting Observation
![Page 70: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/70.jpg)
Crash Log Gathering
![Page 71: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/71.jpg)
Crashes during testingCrash Log Gathering
![Page 72: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/72.jpg)
Crashes during testingCrash Log Gathering
![Page 73: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/73.jpg)
Crashes during testingCrash Log Gathering
Test host or target application may crash
![Page 74: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/74.jpg)
Crashes during testingCrash Log Gathering
Test host or target application may crashXcode completes test suite
![Page 75: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/75.jpg)
Crashes during testingCrash Log Gathering
Test host or target application may crashXcode completes test suiteBut how to resolve the crash?
![Page 76: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/76.jpg)
Improved test reportsCrash Log Gathering NEW
![Page 77: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/77.jpg)
Improved test reportsCrash Log Gathering NEW
![Page 78: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/78.jpg)
Improved test reportsCrash Log Gathering
For Unit and UI tests
NEW
![Page 79: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/79.jpg)
Improved test reportsCrash Log Gathering
For Unit and UI testsLocal and Xcode Server crash logs
NEW
![Page 80: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/80.jpg)
Improved test reportsCrash Log Gathering
For Unit and UI testsLocal and Xcode Server crash logsLogs included in test report
NEW
![Page 81: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/81.jpg)
Improved test reportsCrash Log Gathering
For Unit and UI testsLocal and Xcode Server crash logsLogs included in test reportView crashes in Xcode’s Debug Navigator
NEW
![Page 82: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/82.jpg)
DemoCrash Log Gathering
![Page 83: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/83.jpg)
Improved test reportsCrash Log Gathering
![Page 84: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/84.jpg)
Crash logs gathered in test reports
Improved test reportsCrash Log Gathering
![Page 85: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/85.jpg)
Crash logs gathered in test reportsView crashes in Xcode’s Debug Navigator
Improved test reportsCrash Log Gathering
![Page 86: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/86.jpg)
Continuous Integration in XcodeXcode Server
Eric DudiakXcode Engineer
![Page 87: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/87.jpg)
OverviewXcode Server
![Page 88: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/88.jpg)
OverviewXcode Server
Custom environment variables
![Page 89: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/89.jpg)
OverviewXcode Server
Custom environment variablesAdvanced trigger editing
![Page 90: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/90.jpg)
OverviewXcode Server
Custom environment variablesAdvanced trigger editingIssue tracking and blame
![Page 91: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/91.jpg)
OverviewXcode Server
Custom environment variablesAdvanced trigger editingIssue tracking and blameUpgrade integrations
![Page 92: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/92.jpg)
OverviewXcode Server
Custom environment variablesAdvanced trigger editingIssue tracking and blameUpgrade integrationsConfigurable integration user
![Page 93: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/93.jpg)
New in Xcode 7.3Custom Environment Variables
![Page 94: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/94.jpg)
Integration scriptsAdvanced Triggers NEW
![Page 95: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/95.jpg)
Email notificationsAdvanced Triggers NEW
![Page 96: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/96.jpg)
Email notificationsAdvanced Triggers NEW
![Page 97: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/97.jpg)
Email notificationsAdvanced Triggers NEW
![Page 98: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/98.jpg)
Email notificationsAdvanced Triggers NEW
![Page 99: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/99.jpg)
Email notificationsAdvanced Triggers NEW
![Page 100: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/100.jpg)
Email notificationsAdvanced Triggers NEW
![Page 101: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/101.jpg)
We all have issuesIssue Tracking and Blame
![Page 102: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/102.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect
![Page 103: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/103.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect• Tests will fail
![Page 104: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/104.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect• Tests will fail• Errors will come up
![Page 105: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/105.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect• Tests will fail• Errors will come up• Xcode will blame you
![Page 106: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/106.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect• Tests will fail• Errors will come up• Xcode will blame you
Even if you are perfect
![Page 107: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/107.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect• Tests will fail• Errors will come up• Xcode will blame you
Even if you are perfect• SDKs change
![Page 108: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/108.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect• Tests will fail• Errors will come up• Xcode will blame you
Even if you are perfect• SDKs change• Language improvements
![Page 109: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/109.jpg)
We all have issuesIssue Tracking and Blame
Nobody is perfect• Tests will fail• Errors will come up• Xcode will blame you
Even if you are perfect• SDKs change• Language improvements• Smarter tools
![Page 110: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/110.jpg)
Identifying issue ownersIssue Tracking and Blame NEW
![Page 111: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/111.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to act
NEW
![Page 112: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/112.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it
NEW
![Page 113: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/113.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it• You introduced an issue
NEW
![Page 114: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/114.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it• You introduced an issue• Issue is on or near line you modified
NEW
![Page 115: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/115.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it• You introduced an issue• Issue is on or near line you modified• You are the only committer
NEW
![Page 116: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/116.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it• You introduced an issue• Issue is on or near line you modified• You are the only committer
You can help fix it
NEW
![Page 117: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/117.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it• You introduced an issue• Issue is on or near line you modified• You are the only committer
You can help fix it• You probably know how to fix an issue
NEW
![Page 118: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/118.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it• You introduced an issue• Issue is on or near line you modified• You are the only committer
You can help fix it• You probably know how to fix an issue• You seem to know about the area involved
NEW
![Page 119: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/119.jpg)
Identifying issue ownersIssue Tracking and Blame
Lets you know when it’s time to actYou broke it• You introduced an issue• Issue is on or near line you modified• You are the only committer
You can help fix it• You probably know how to fix an issue• You seem to know about the area involved• Fuzzy matching
NEW
![Page 120: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/120.jpg)
Bot configuration changesIssue Tracking and Blame NEW
![Page 121: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/121.jpg)
Bot configuration changesIssue Tracking and Blame
Tracks changes to your bot configuration
NEW
![Page 122: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/122.jpg)
Bot configuration changesIssue Tracking and Blame
Tracks changes to your bot configurationAttributes issues to changes where possible
NEW
![Page 123: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/123.jpg)
Bot configuration changesIssue Tracking and Blame
Tracks changes to your bot configurationAttributes issues to changes where possibleIncluded in email reports
NEW
![Page 124: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/124.jpg)
When it’s not your faultUpgrade Integrations NEW
![Page 125: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/125.jpg)
When it’s not your faultUpgrade Integrations
Re-integrates your project
NEW
![Page 126: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/126.jpg)
When it’s not your faultUpgrade Integrations
Re-integrates your projectSame revision as the last integration
NEW
![Page 127: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/127.jpg)
When it’s not your faultUpgrade Integrations
Re-integrates your projectSame revision as the last integrationAny new issues are due to the upgrade
NEW
![Page 128: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/128.jpg)
When it’s not your faultUpgrade Integrations
Re-integrates your projectSame revision as the last integrationAny new issues are due to the upgradePrevents blaming you for broken builds
NEW
![Page 129: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/129.jpg)
Configurable Integration User
![Page 130: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/130.jpg)
Configurable Integration User
Improved visibility into your integrations
![Page 131: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/131.jpg)
Configurable Integration User
Improved visibility into your integrationsAllows customization
![Page 132: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/132.jpg)
Configurable Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations run
![Page 133: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/133.jpg)
Configurable Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the system
![Page 134: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/134.jpg)
Configurable Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 135: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/135.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 136: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/136.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
••••••••••••••••••••••••••••••
![Page 137: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/137.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 138: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/138.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 139: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/139.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 140: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/140.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 141: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/141.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 142: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/142.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 143: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/143.jpg)
![Page 144: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/144.jpg)
Custom Integration User
Improved visibility into your integrationsAllows customizationYou own and manage how your integrations runCan be any user on the systemRuns as a menu extra
![Page 145: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/145.jpg)
DemoXcode Server
![Page 146: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/146.jpg)
Configurable Integration User
![Page 147: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/147.jpg)
Configurable Integration User
Improved visibility
![Page 148: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/148.jpg)
Configurable Integration User
Improved visibilityCustomized simulators
![Page 149: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/149.jpg)
Configurable Integration User
Improved visibilityCustomized simulatorsNormal macOS user
![Page 150: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/150.jpg)
Configurable Integration User
Improved visibilityCustomized simulatorsNormal macOS userRuns as a menu extra
![Page 151: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/151.jpg)
Best practicesConfigurable Integration User
![Page 152: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/152.jpg)
Best practicesConfigurable Integration User
Dedicate a new user
![Page 153: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/153.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accounts
![Page 154: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/154.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accountsStay logged in with Fast User Switching
![Page 155: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/155.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accountsStay logged in with Fast User SwitchingDisable screen lock
![Page 156: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/156.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accountsStay logged in with Fast User SwitchingDisable screen lockCustomize for your needs
![Page 157: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/157.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accountsStay logged in with Fast User SwitchingDisable screen lockCustomize for your needs• Simulators
![Page 158: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/158.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accountsStay logged in with Fast User SwitchingDisable screen lockCustomize for your needs• Simulators• Networking (VPN and proxies)
![Page 159: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/159.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accountsStay logged in with Fast User SwitchingDisable screen lockCustomize for your needs• Simulators• Networking (VPN and proxies)• User data and settings
![Page 160: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/160.jpg)
Best practicesConfigurable Integration User
Dedicate a new userAvoid using administrator accountsStay logged in with Fast User SwitchingDisable screen lockCustomize for your needs• Simulators• Networking (VPN and proxies)• User data and settings• Advanced provisioning
![Page 161: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/161.jpg)
Building block for Continuous Integration Systemsxcodebuild
![Page 162: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/162.jpg)
Test actionxcodebuild
xcodebuild test -workspace <path>
-scheme <name>
-destination <specifier>
![Page 163: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/163.jpg)
Test actionxcodebuild
Builds sources
xcodebuild test -workspace <path>
-scheme <name>
-destination <specifier>
![Page 164: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/164.jpg)
Test actionxcodebuild
Builds sourcesInstalls app on destination if needed
xcodebuild test -workspace <path>
-scheme <name>
-destination <specifier>
![Page 165: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/165.jpg)
Test actionxcodebuild
Builds sourcesInstalls app on destination if neededRuns tests
xcodebuild test -workspace <path>
-scheme <name>
-destination <specifier>
![Page 166: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/166.jpg)
Test actionxcodebuild
Builds sourcesInstalls app on destination if neededRuns testsReports results in console
xcodebuild test -workspace <path>
-scheme <name>
-destination <specifier>
![Page 167: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/167.jpg)
Customizing testsTest Options NEW
xcodebuild test -workspace <path>
-scheme <name>
-destination <specifier>
-only-testing:TestBundleA/TestSuiteA/TestCaseA
-only-testing:TestBundleB/TestSuiteB
-only-testing:TestBundleC
![Page 168: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/168.jpg)
Customizing testsTest Options NEW
xcodebuild test -workspace <path>
-scheme <name>
-destination <specifier>
-only-testing:TestBundleA/TestSuiteA/TestCaseA
-only-testing:TestBundleB/TestSuiteB
-only-testing:TestBundleC
xcodebuild test -scheme <name>
-skip-testing:TestBundleD/TestSuiteD/TestCaseD
![Page 169: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/169.jpg)
Separating building from testingAdditional Test Actions NEW
Test
![Page 170: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/170.jpg)
Separating building from testingAdditional Test Actions NEW
Build for Testing Test without Building
![Page 171: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/171.jpg)
Only buildingBuilding for Testing NEW
xcodebuild build-for-testing -workspace <path>
-scheme <name>
-destination <specifier>
![Page 172: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/172.jpg)
Builds sources for testing
Only buildingBuilding for Testing NEW
xcodebuild build-for-testing -workspace <path>
-scheme <name>
-destination <specifier>
![Page 173: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/173.jpg)
Builds sources for testingOutputs products in Derived Data
Only buildingBuilding for Testing NEW
xcodebuild build-for-testing -workspace <path>
-scheme <name>
-destination <specifier>
![Page 174: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/174.jpg)
Builds sources for testingOutputs products in Derived DataGenerates an xctestrun file
Only buildingBuilding for Testing NEW
xcodebuild build-for-testing -workspace <path>
-scheme <name>
-destination <specifier>
![Page 175: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/175.jpg)
Only testingTest Without Building NEW
xcodebuild test-without-building -workspace <path>
-scheme <name>
-destination <specifier>
![Page 176: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/176.jpg)
Only testingTest Without Building
Finds binary products in Derived Data
NEW
xcodebuild test-without-building -workspace <path>
-scheme <name>
-destination <specifier>
![Page 177: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/177.jpg)
Only testingTest Without Building
Finds binary products in Derived DataInstalls if necessary
NEW
xcodebuild test-without-building -workspace <path>
-scheme <name>
-destination <specifier>
![Page 178: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/178.jpg)
Only testingTest Without Building
Finds binary products in Derived DataInstalls if necessaryRuns tests and report results as before
NEW
xcodebuild test-without-building -workspace <path>
-scheme <name>
-destination <specifier>
![Page 179: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/179.jpg)
Only testingTest Without Building NEW
xcodebuild test-without-building -xctestrun <path>
-destination <specifier>
![Page 180: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/180.jpg)
Only testingTest Without Building
Ingests the xctestrun file
NEW
xcodebuild test-without-building -xctestrun <path>
-destination <specifier>
![Page 181: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/181.jpg)
Only testingTest Without Building
Ingests the xctestrun fileFinds binary products relative to xctestrun file
NEW
xcodebuild test-without-building -xctestrun <path>
-destination <specifier>
![Page 182: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/182.jpg)
Only testingTest Without Building
Ingests the xctestrun fileFinds binary products relative to xctestrun fileRuns tests, reports results as before
NEW
xcodebuild test-without-building -xctestrun <path>
-destination <specifier>
![Page 183: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/183.jpg)
Distributed testingxcodebuild
Build Machine Test Machine #2
Test Machine #1
![Page 184: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/184.jpg)
Distributed testingxcodebuild
Build Machine Test Machine #2
Test Machine #1
![Page 185: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/185.jpg)
Distributed testingxcodebuild
Build Machine Test Machine #2
Test Machine #1
xcodebuild build-for-testing
![Page 186: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/186.jpg)
Distributed testingxcodebuild
Build Machine Test Machine #2
Test Machine #1
xcodebuild build-for-testing
![Page 187: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/187.jpg)
xcodebuild test-without-building
Distributed testingxcodebuild
Build Machine Test Machine #2
Test Machine #1
xcodebuild build-for-testing
![Page 188: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/188.jpg)
xcodebuild test-without-building
xcodebuild test-without-building
Distributed testingxcodebuild
Build Machine Test Machine #2
Test Machine #1
xcodebuild build-for-testing
![Page 189: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/189.jpg)
Test manifestxctestrun NEW
![Page 190: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/190.jpg)
Test manifestxctestrun NEW
![Page 191: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/191.jpg)
Test manifestxctestrun
Tests to run or skip
NEW
![Page 192: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/192.jpg)
Test manifestxctestrun
Tests to run or skipEnvironment variables
NEW
![Page 193: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/193.jpg)
Test manifestxctestrun
Tests to run or skipEnvironment variablesCommand-line arguments
NEW
![Page 194: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/194.jpg)
Test manifestxctestrun
Tests to run or skipEnvironment variablesCommand-line argumentsDocumentation in man pages
NEW
![Page 195: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/195.jpg)
Test manifestxctestrun
Tests to run or skipEnvironment variablesCommand-line argumentsDocumentation in man pagesman xcodebuild.xctestrun
NEW
![Page 196: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/196.jpg)
Summary
![Page 197: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/197.jpg)
![Page 198: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/198.jpg)
Summary
Testing Concepts
Xcode• Crash Log Gathering
Xcode Server• Advanced Triggers• Issue Tracking and Blame• Configurable Integration User
xcodebuild
![Page 199: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/199.jpg)
![Page 200: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/200.jpg)
![Page 201: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/201.jpg)
More Information
https://developer.apple.com/wwdc16/409
![Page 202: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/202.jpg)
Labs
Xcode Open Hours Developer Tools Lab C Thursday 9:00AM
Xcode Open Hours Developer Tools Lab B Friday 9:00AM
![Page 203: Advanced Testing and Continuous Integration...All tests run in single app launch Tests launch app for every test case. Comparison Test Hosting Unit Tests UI Tests Direct access to](https://reader030.vdocument.in/reader030/viewer/2022040908/5e7f8cb62db2b862e12cf92a/html5/thumbnails/203.jpg)