Xcodeプロジェクトのテストカバレッジレポートを生成し、CIにフックします。
プロジェクト | カバレッジ |
---|---|
parsimmon | |
Vencore | |
dazabtest | |
tbstatemachine |
この行をアプリケーションのGemfileに追加します。
gem 'slather'
そして実行してください:
$バンドル
または宝石をインストールします:
GemインストールSlather
スキームを編集するときに「カバレッジデータを収集する」チェックボックスをチェックすることでテストカバレッジを有効にします。
テストカバレッジを生成する準備ができていることを確認するには、プロジェクトでテストスイートを実行してから実行してください。
$ slatherカバレッジ-s - スchemeyourxcodeschemename path/to/project.xcodeproj
Xcodeでワークスペースを使用する場合は、指定する必要があります。
$ Slatherカバレッジ-S - Scheme yourxcodeschemename -workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
テストに別の構成を使用する場合:
$ slatherカバレッジ-s - スchemeyourxcodeschemename - configuration yourbuildconfigurationname path/to/project.xcodeproj
構成がユニバーサルバイナリを生成する場合は、使用する特定のアーキテクチャを指定する必要があります。
$ Slatherカバレッジ-S -Arch X86_64 - Scheme YourXCodesChemename - configuration yourbuildconfigurationname path/to/project.xcodeproj
すべて(ココアポッドによって作成されたモジュールのように)ではなく、いくつかのモジュールを実行したい場合は、次のようにできます。
$ Slatherカバレッジ-binary-basename module1 -binary-basename module2 path/to/project.xcodeproj
また、Arrayとして.slather.yml
ファイルに追加することもできます。
binary_basename: -odule1 -odule2
このコマンドを実行して、プロジェクトのGenerate Test Coverage
とInstrument Program Flow
フラグを生成できます。
$ Slather Setup Path/to/project.xcodeproj
構成ファイル( .slather.yml
)の両方を使用し、コマンドラインを介して引数を提供する場合、構成ファイルの一致する設定よりも引数が優先されます。
ignore
常にsource-files
に勝ちます( --ignore
、無視)とソースファイルを無視する必要があるファイルを定義する場合( --source-files
、source_files)、無視リストが最初にチェックされます。スキャンされているファイルが無視リストのグローブと一致する場合、それは含まれません。この場合、source_fileリストはチェックされません。
スキャンされているファイルがIngroreリストにない場合、Source_Fileが定義されている場合、Source_Fileリストがチェックされます。ソースファイルがグローブと一致する場合、それは含まれます。
Codecovにログインします(リポジトリをアクティブにする必要はありません。これは自動的に行われます)。現在、 slather
ここにリストされているすべてのサポートされているCIプロバイダーを介してCodecovをサポートしています。
.slather.yml
ファイルを作成します:
#.slather.ymlcoverage_service:cobertura_xmlxcodeproj:path/to/project.xcodeprojscheme:yourxcodeschemenameconfiguration:TestedConfigureationsOurce_Directory:Path/to/sources/to/inclutiontory -podcode/* -projectestsgroup/*
そして、 .travis.yml
、 circle.yml
(または他のCIプロバイダーのテストコマンドの後)で、ビルドを成功させた後、 slather
に電話してください。
#.travis.ymlbefore_install:rvm use $ rvm_ruby_versioninstall:bundle install -without = documentation -path ../travis_bundle_dirafter_success: - スラザー -bash <(curl -s https://codecov.io/bash)-f path/to/xml_report/cobertura.xml -x coveragepy -x gcov -x xcode
#circle.ymltest:投稿: - バンドルexec slather- bash <(curl -s https://codecov.io/bash)-f path/to/xml_report/cobertura.xml -x coveragepy -x gcov -x xcode
プライベートリポジトリ?
-t :uuid-repo-token
codecov uploaderに追加します。 Codecovへのアップロードレポートの詳細については、こちらをご覧ください
カバーオールにログインし、リポジトリを有効にします。現在、 slather
Travis CI、Circleci、Jenkins、TeamCity、BuildKite、Bitriseを介してCoverallsをサポートしています。
.slather.yml
ファイルを作成し、使用しているCIサービスを指定します。
#.slather.ymlci_service:circleci | travis_ci | travis_pro |ジェンキンス| buildkite | TeamCityCoverage_Service:coverallsxcodeproj:path/to/project.xcodeprojscheme:yourxcodeschemenameignore: -podcode/* -projectestsgroup/*
そして、あなたの.travis.yml
またはcircle.yml
またはgithub-action.yml
で、成功したビルドの後にslather
に電話してください。
#.travis.ymlbefore_install:rvm use $ rvm_ruby_versioninstall:bundle install -without = documentation -path ../travis_bundle_dirafter_success:slather
#circle.ymltest:投稿: - バンドルexec Slather
#github-action.yml myjob:ステップ: - 実行:| バンドル構成パスベンダー/バンドルバンドルインストール - without = documentation -jobs 4- retry 3-名前:抽出ブランチナメッシュ:bashrun:echo "## [set -output name = branch;] $(echo $ {github_ref##(github_ref# refs/heads/}) "id:get_branch -run:bundle exec slatherenv:git_branch:$ {{steps.get_branch.outputs.branch}} ci_pull_request:$ {{github.event.number}} coverage_access_token:$ {{secrets。 github_token}}
Travis CI ProでCoverallsを使用するには(プライベートレポス用)、. .slather.yml
に他の設定とともに次の行を追加します。
#.slather.ymlci_service:travis_procoverage_access_token:<your access token>
カバレッジトークンは、Coveralls Repoページにあります。または、 COVERAGE_ACCESS_TOKEN
環境を介して渡すことができます。
Cobertura XMLレポートを作成するには、 .slather.yml
内のカバレッジサービスとしてcobertura_xml
設定します。オプションで、XMLレポートの出力ディレクトリを定義できます。
#.slather.ymlcoverage_service:cobertura_xmlxcodeproj:path/to/project.xcodeprojscheme:yourxcodeschemenamesource_directory:path/to/sources/to/includeoutput_directory:path/to/xml_reportignore: -podcode/* -projectestsgroup/*
または、コマンドラインオプションを使用します--cobertura-xml
または-x
および--output-directory
:
$ Slatherカバレッジ-X -Output -Directory Path/to/xml_report
静的HTMLページとしてレポートを作成するには、コマンドラインオプションを使用します--html
:
$ slatherカバレッジ-html - scheme yourxcodeschemename path/to/project.xcodeproj
これにより、ルートディレクトリにhtml
という名前のディレクトリが作成され( --output-directory
が指定されていない場合)、すべてのレポートをディレクトリ内の静的HTMLページとして生成します。デフォルトでレポートのパスを印刷しますが、ブラウザで自動的に開くための--show
フラグを指定することもできます。
デフォルトでは、生成されたHTMLは、ローカルホスト資産(JS、CSS)を参照します。 --cdn-assets
指定して、生成されたHTMLが外部ホスト資産を使用することを好むことを指定できます。これは、HTMLファイルをビルドアーティファクトとして公開する場合に役立ちます。
カバレッジ統計をTeamCityに報告するには:
$ slatherカバレッジ-teamcity -s - scheme yourxcodeschemename
Cocoapodsを介して含まれているコードのカバレッジを計算しようとしている場合は、 Podfile
に以下を追加して、Slatherプラグインを使用するようにCocoapodsに指示する必要があります。
プラグイン「スラザー」
また、PODのソースファイルを見つける場所をSlatherに伝える必要があります。
#.SLATHER.YMLSOURCE_DIRECTORY:PODS/AFNETWORKING
Slatherは、デフォルトでDerivedData
のテストカバレッジファイルを探します。このようなカスタムロケーションにビルド出力を送信する場合は、 build_directory
プロパティを.slather.yml
に設定する必要があります。
--workspace
引数を含めるか、ワークスペースを構築する場合は、 .slather.yml
にworkspace
を追加します。例えば:
$ slatherカバレッジ-html - scheme yourxcodeschemename -workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
このライブラリを改善するためのあなたのアイデアを見てみたいです!貢献する最良の方法は、プルリクエストを送信することです。できるだけ早くパッチに応答するために最善を尽くします。バグを見つけたり質問がある場合は、新しいGitHubの問題を提出することもできます。
一般的なコーディングスタイルに従って、新しい機能のテストカバレッジを追加してください!
@tpoulos、完璧なロゴ。
@ayanonagonと@kylef、フィードバックとテスト。
@Jhersh、Circleciサポート。
@Tarbrain、Cobertura Support and Bugfixing。
@ikhsan、HTMLサポート。
@Martin-Keyと@troyfontaine、Githubアクションサポート。