Xcode 프로젝트에 대한 테스트 커버리지 보고서를 생성하고 CI에 연결하십시오.
프로젝트 | 적용 범위 |
---|---|
파시몬 | |
벤 코어 | |
dazabtest | |
TBSTATEMACHINE |
이 라인을 응용 프로그램의 보석에 추가하십시오.
보석 'Slather'
그런 다음 실행 :
$ 묶음
또는 보석 설치 :
보석 설치 Slather
체계를 편집 할 때 "커버리지 데이터 수집" 확인란을 표시하여 테스트 범위를 활성화합니다.
테스트 범위를 생성 할 준비가되었는지 확인하려면 프로젝트에서 테스트 스위트를 실행 한 다음 실행하십시오.
$ slather 적용 범위 -S ---Scheme YourXcodeschemename Path/to/project.xcodeproj
Xcode에서 작업 공간을 사용하는 경우 다음을 지정해야합니다.
$ slather coverage -s ---scheme Yourxcodeschemename -Workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
테스트에 다른 구성을 사용하는 경우 :
$ Slather Coverage -s ---Scheme YourXcodesChemename --configuration yourBuildConfigurationName Path/to/project.xcodeproj
구성이 범용 바이너리를 생성하는 경우 사용할 특정 아키텍처를 지정해야합니다.
$ Slather Coverage -s --arch x86_64 --- 체계 yourxcodeschemename ---configuration yourbuildconfigurationname path/to/project.xcodeproj
일부 모듈을 실행하려면 모든 모듈 (Cocoapods에서 만든 모듈과 같은 모듈)이 아니라면 다음과 같이 할 수 있습니다.
$ slather 적용 범위-이진-바이즈 이름 모듈 1- 이진-바이즈 이름 모듈 2 경로/to/project.xcodeproj
.slather.yml
파일에 배열로 추가 할 수도 있습니다.
binary_baseName : - 모듈 1 - 모듈 2
이 명령을 실행하여 프로젝트의 Generate Test Coverage
및 Instrument Program Flow
플래그를 활성화하십시오.
$ slather 설정 경로//project.xcodeproj
구성 파일 ( .slather.yml
)을 모두 사용하고 명령 선을 통해 인수를 제공 할 때는 구성 파일의 일치 설정보다 인수가 우선합니다.
ignore
항상 source-files
로 승리합니다 무시 해야하는 파일을 정의하고 ( --ignore
, indore)와 ( --source-files
, source_files)를 포함 할 소스 파일을 정의하면 먼저 무시 목록이 확인됩니다. 스캔 된 파일이 무시 목록에서 글로그와 일치하면 포함되지 않습니다. 이 경우 source_file 목록은 확인되지 않습니다.
스캔되는 파일이 무시 목록에없고 Source_File이 정의 된 경우 Source_File 목록이 확인됩니다. 소스 파일이 글로그와 일치하면 포함됩니다.
Codecov에 로그인합니다 (저장소를 활성화 할 필요 없으면 자동으로 발생합니다). 현재 slather
여기에 나열된 모든 지원되는 CI 제공 업체를 통해 CodeCov를 지원합니다.
.slather.yml
파일 만들기 :
# .slather.ymlcoverage_service : cobertura_xmlxcodeproj : path/to/project.xcodeprojscheme : yourxcodeschemenameconfiguration : testedconfigurationsource_directory : path/to/to/includeput_directory : path/to/xml_reportone : - examplePodCode/* - ProjectTestSGroup/*
그런 다음 .travis.yml
, circle.yml
(또는 다른 CI 제공 업체의 테스트 명령 후)에서 성공적인 빌드 후 slather
호출하십시오.
# .travis.ymlbefore_install : rvm 사용 $ rvm_ruby_versioninstall : bundle install-without = documentation-path ../travis_bundle_dirafter_success : -Slather -Bash <(curl -s https://codecov.io/bash) -f path/to/xml_report/cobertura.xml -x coveragepy -x gcov -x xcode
# circle.ymltest : post : -번들 exec slather- bash <(curl -s https://codecov.io/bash) -f path/to/xml_report/cobertura.xml -x coveragepy -x gcov -x xcode
개인 레포? Codecov 업 로더에
-t :uuid-repo-token
추가하십시오. Codecov에 보고서를 업로드하는 것에 대해 자세히 알아보십시오
Coveralls에 로그인하고 저장소를 활성화하십시오. 현재 slather
Travis CI, Circleci, Jenkins, TeamCity, BuildKite 및 Bitrise를 통해 Coverals를 지원합니다.
.slather.yml
파일을 만들고 사용중인 CI 서비스를 지정하십시오.
# .slather.ymlci_service : circleci | travis_ci | travis_pro | 젠킨스 | BuildKite | TeamCityCoverage_Service : Coverallsxcodeproj : path/to/project.xcodeprojscheme : yourxcodeschemenameignore : - examplePodCode/* - ProjectTestSGroup/*
그런 다음 .travis.yml
또는 circle.yml
또는 github-action.yml
에서 성공적인 빌드 후 slather
호출하십시오.
# .travis.ymlbefore_install : rvm 사용 $ rvm_ruby_versioninstall : 번들 설치 -without = documentation--path ../travis_bundle_dirafter_success : slather
# circle.ymltest : post : - 번들 exec slather
# github-action.yml MyJob : 단계 : - 런 : | 번들 구성 경로 벤더/번들 번들 설치 -without = documentation -jobs 4 -Retry 3- 이름 : Extract Branch Nameshell : Bashrun : Echo "## [Set -Output Name = Branch;] $ (echo $ {github_ref# refs/heads/}) "id : get_branch -run : 번들 exec slatherenv : git_branch : $ {{steps.get_branch.outputs.branch}} ci_pull_request : $ {github.event.number}} coverage_access_token : $ {{비판. github_token}}
Travis CI Pro (개인 저장소의 경우)와 함께 Coverals를 사용하려면 .slather.yml
에 다른 설정과 함께 다음 줄을 추가하십시오.
# .slather.ymlci_service : travis_procoverage_access_token : <액세스 Token>
커버리지 토큰은 Coverals Repo 페이지에서 찾을 수 있습니다. 또는 COVERAGE_ACCESS_TOKEN
환경을 통해 전달할 수 있습니다.
Cobertura XML 보고서를 작성하려면 cobertura_xml
.slather.yml
내부의 커버리지 서비스로 설정하십시오. 선택적으로 XML 보고서의 출력 디렉토리를 정의 할 수 있습니다.
# .slather.ymlcoverage_service : cobertura_xmlxcodeproj : path/to/project.xcodeprojscheme : yourxcodeschemenamesource_directory : path/to/sources/to/includeput_directory : path/to/xml_reportignore : - examplePodCode/* - ProjectTestSGroup/*
또는 명령 줄 옵션을 사용 --cobertura-xml
또는 -x
및 --output-directory
:
$ Slather Coverage -X- 출력 -디렉토리 경로/to/xml_report
정적 html 페이지로 보고서를 작성하려면 명령 줄 옵션 --html
을 사용하십시오.
$ slather 적용 범위 -html --- 체계 yourxcodeschemename path/to/project.xcodeproj
루트 디렉토리에서 html
이라는 디렉토리가 만들어지며 ( --output-directory
지정되지 않는 한) 모든 보고서를 디렉토리 내부의 정적 HTML 페이지로 생성합니다. 기본적으로 보고서의 경로를 인쇄하지만 --show
플래그를 지정하여 브라우저에서 자동으로 열 수 있습니다.
기본적으로 생성 된 HTML은 로컬 호스팅 자산 (JS, CSS)을 참조합니다. 생성 된 HTML이 외부 호스팅 자산을 사용하는 것을 선호하도록 --cdn-assets
지정할 수 있습니다. HTML 파일을 빌드 아티팩트로 게시하는 경우 유용 할 수 있습니다.
커버리지 통계를 TeamCity에보고하려면 :
$ slather 적용 범위 --- teamcity -s ---scheme Yourxcodeschemename
Cocoapods를 통해 포함 된 코드의 적용 범위를 계산하려는 경우 다음을 Podfile
에 추가하여 Slather 플러그인을 사용하도록 Cocoapod에 알려야합니다.
플러그인 'Slather'
또한 포드의 소스 파일을 찾을 수있는 곳에 Slather에게 알려야합니다.
# .slather.ymlsource_directory : pods/afnetworking
Slather는 기본적으로 DerivedData
에서 테스트 범위 파일을 찾습니다. 이와 같은 사용자 정의 위치로 빌드 출력을 보내면 .slather.yml
에 build_directory
속성을 설정해야합니다.
작업 공간에서 프로젝트를 작성하는 경우 --workspace
argument 또는 workspace
.slather.yml
에 추가하십시오. 예를 들어:
$ slather 적용 범위 -html --- 스키 네 Yourxcodeschemename-workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
이 도서관을 개선하기위한 귀하의 아이디어를보고 싶습니다! 기여하는 가장 좋은 방법은 풀 요청을 제출하는 것입니다. 우리는 가능한 한 빨리 패치에 응답하기 위해 최선을 다하겠습니다. 버그를 찾거나 질문이 있으면 새로운 GitHub 문제를 제출할 수도 있습니다.
일반적인 코딩 스타일을 따르고 새로운 기능에 대한 테스트 범위를 추가하십시오!
@tpoulos, 완벽한 로고.
@ayanonagon 및 @kylef, 피드백 및 테스트.
@Jhersh, CircleCi 지원.
@Tarbrain, Cobertura 지원 및 버그 문제.
@ikhsan, HTML 지원.
@Martin-Key 및 @troyfontaine, Github Actions 지원.