๐ 2019.11.10 (์ผ)
WWDC 2015 | Session : 410 | Category : Testing
๐ Continuous Integration and Code Coverage in Xcode - WWDC 2015 - Videos - Apple Developer
๋ชจ๋ ์ฝ๋๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก pull ๋ฐ์์ build์ test๋ฅผ ํ๊ณ build error ๋ test failure๋ฅผ ์ ์ํ๊ฒ ์ฐพ์ ์ ์๊ฒ ํด์ค๋ค.
์ค์ ํ๊ธฐ๊ฐ ์ฝ๋ค.
Xcode์ ํตํฉ์ด ์ ๋์ด ์๋ค.
Scheme
- Xcode์์ ํ๋ก์ ํธ๋ ํ ์คํธ๋ฅผ run ํ ๋ ๋ง๋ค, Scheme์ run ํ๋ ๊ฒ์ด๋ค.
- ๋๋ถ๋ถ ์๋์ผ๋ก ์์ฑ ๋์ง๋ง, custom scheme์ ๋ง๋ค ์ ๋ ์๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋น๋ ํ๋ ๋ฐฉ๋ฒ์ ํ์์ด๋ค.
- ์ด๋ค ํ๊ฒ์ ๋น๋ ํ ์ง, ์ด๋ค ํ ์คํธ ๋ฒ๋ค์ ์คํ ํ ์ง, ๋ฑ์ ์๊ณ ์๋ค.
- Xcode Server์์ bot์ ์ธํ ํ ๋ ์ค์ํ๋ค.
Bot
- ๊ธฐ๋ณธ์ ์ผ๋ก ํน์ ์คํด์ ๊ฐ์ง๊ณ ์ ์ํด ๋์ ์ค์ผ์ฅด๋๋ก buildํ๊ณ run ํ๋ค. ์ ์ ๋ action์ ์ํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ๋ค.
Integration
- ์ค์ผ์ฅด์ด ๋๋๊ณ ํ๋ก์ ํธ๋ฅผ ์คํ ํ๋ ๊ฒ
- Better bot editing
- Choosing repositories and branches
- Source control security
- Updated reports
- Improved issue tracking
- UserInterface Testing
- iOS ํ ์คํธ๋ Mac ํ ์คํธ๋ฅผ ์คํ ํ ๋ Xcode Sever์ background์์ full window session์ ์์ฑํ๋ค.
- ์ค์ ๋๋ฐ์ด์ค์์๋ UI test์ ๋จ๊ณ๋ค์ ๋ณผ ์ ์๋ค.
- ์ ์ ๊ฐ ๋ฐ๋ผ๋ณด๋ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก high level์์ ์ฑ์ ํ ์คํธํ๊ธฐ ์ข๋ค.
- On Demand Resources
- ์ฑ bundle์ ๋ ์๊ฒ ๋ง๋ค์ด ์ค๋ค. ๋ฒ๋ค์ ๊ฐ๋ฅํํ ๋ง์ resource๋ฅผ ์ ์ฅํ์ง ์๊ธฐ ๋๋ฌธ์.
- App Store๊ฐ ๋์ ์ฃผ์ฒด๊ฐ ๋์ด์ค๋ค.
- QA ์์ App Store์ ์ฌ๋ผ๊ฐ ์์ง ์๊ธฐ ๋๋ฌธ์ ํ ์คํธ ํ ์ ๊ฐ ์๋๋ฐ, QA๋น๋๊ฐ Xcode Sever์ ์ฌ๋ผ๊ฐ ์์ผ๋ฉด ์์์ ํด์ค๋ค.
- Code Coverage
- ํ ์คํธ๋ฅผ ํ์ ๋ ์ด๋ค ์ฝ๋๊ฐ ์ค์ ๋ก ์คํ ๋๋์ง
- Custom actions : Email notification or scripts
- Use your language of choice
- Include a #! in your script, otherwise Bash is assumed
- Before and after integrations run
- Gated on the result of the integration
ํ๊ฒฝ๋ณ์
- Open stantdard
- Secure communication over HTTPS
- REST pattern of resources and action
- Data exchanged using JSON
- Compatible with most scripting language