🍏/CI, CD
[Github Actions] 테스트 커버리지 보여주기 기록
eungding
2020. 7. 17. 13:18
728x90
반응형
[하고 싶은 것]
Jest reporter action 처럼 PR하면 이렇게 테스트 커버리지가 코멘트로 달리는 것을 하고 싶습니다.
(참고로 Jest는 페이스북에서 유지 관리하는 JavaScript 테스트 프레임 워크입니다. Babel, TypeScript, Node.js, React, Angular 및 Vue.js를 사용하는 프로젝트에서 작동합니다.)
그러면 PR할때마다 테스트 커버리지가 보이니까
내가 추가한 피쳐에 테스트를 달고 싶은 동기부여가 더 되지 않을 까 해서요-!
[1] Slather 페이지 열어주기
- cocoapod 써서 xcworkspace 쓰는 플젝
name: PR
# workflow run이 언제 triggered 될 것인지에 대한 설정.
on:
# master랑 develop 브랜치에 풀리퀘하면 workflow를 돌리겠음.
pull_request:
branches: [ master, develop ]
# workflow 정의.
jobs:
build-and-test:
runs-on: self-hosted
env:
XCWORKSPACE: MyApp.xcworkspace
PROJECT: MyApp.xcodeproj
SCHEME: Model
CONFIGURATION: Debug
DESTINATION: platform=iOS Simulator,name=iPad Pro (9.7-inch),OS=latest
steps:
# step 1
- name: Checkout source code
uses: actions/checkout@v2
# step 2
- name: CocoaPod Install
run: pod install
# step 3
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode.app
# step 4
- name: Build and Test
run: xcodebuild clean build test
-workspace "$XCWORKSPACE"
-scheme "$SCHEME"
-configuration "$CONFIGURATION"
-destination "$DESTINATION"
-enableCodeCoverage YES | xcpretty --color
# step 5
- name: Show Test Coverage
run: slather coverage
--html --show
--workspace "$XCWORKSPACE"
--scheme "$SCHEME"
--configuration "$CONFIGURATION"
"$PROJECT"
- xcodeproj 쓰는 플젝
name: PR
# workflow run이 언제 triggered 될 것인지에 대한 설정.
on:
# master랑 develop 브랜치에 풀리퀘하면 workflow를 돌리겠음.
pull_request:
branches: [ master, develop ]
# workflow 정의.
jobs:
build-and-test:
runs-on: self-hosted
env:
PROJECT: Gorgonzola.xcodeproj
SCHEME: Gorgonzola (iOS)
CONFIGURATION: Debug
DESTINATION: platform=iOS Simulator,name=iPad Pro (9.7-inch),OS=latest
steps:
# step 1
- name: Checkout source code
uses: actions/checkout@v2
# step 2
- name: Select Xcode
run: sudo xcode-select -switch /Applications/Xcode.app
# step 3
- name: Build and Test
run: xcodebuild clean build test
-project "$PROJECT"
-scheme "$SCHEME"
-configuration "$CONFIGURATION"
-destination "$DESTINATION"
-enableCodeCoverage YES | xcpretty --color
# step 4
- name: Show Test Coverage
run: slather coverage
--html --show
--scheme "$SCHEME"
--configuration "$CONFIGURATION"
"$PROJECT"
##
만약 워크플로우 돌리는 서버에 slather가 설치 안되어있다면
install slather를 스텝에 추가해주면 됩니다!
name: PR
# workflow run이 언제 triggered 될 것인지에 대한 설정.
on:
# master랑 develop 브랜치에 풀리퀘하면 workflow를 돌리겠음.
pull_request:
branches: [ master, develop ]
# workflow 정의.
jobs:
build-and-test:
runs-on: macos-latest
steps:
...
# step 4
- name: Install Slather
run: sudo gem install slather
# step 5
- name: Show Test Coverage
run: slather coverage ....
[추가] 마켓플레이스에 있는 액션스
github.com/marketplace/actions/swift-codecov
swift-codecov - GitHub Marketplace
Runs simple analysis on swift test codecov output
github.com
github.com/marketplace/actions/swift-coverage-report
Swift Coverage Report - GitHub Marketplace
Report SPM test coverage summary and lcov file
github.com
반응형