CIパイプラインを設定してユニットテストを自動的に実行しようとしていますが、現在のワークスペースのスキームは扱っていません。私はXcode/Manage Schemesなどを使ってそれらを作成することができますが、テストルーチンの自動化の性質から、スキームの作成手順を自動化する方法があるかどうかを考え出しています。Xcodeプロジェクトのスキームをコマンドラインから自動作成する方法はありますか
0
A
答えて
0
まず、Xcodeプロジェクトをテストするには、テストを実行するように構成された少なくとも1つのスキームを使用する必要があります。その後、xcodebuildコマンドラインからテストを実行する必要があります。したがって、2つのステップを実行して、最初に必要なスキームを自動的に生成し、次にテスト構成スキームのテストを実行します。
1-スクリプトでルビーの宝石CocoaPods/Xcodeprojを使用することで、私はスキームの作成を実行することができました。次のコードは、すべてのターゲットのためのスキームを作成します。
#!/usr/bin/env ruby
# fix_schemes.rb
require 'xcodeproj'
project_path = '/your_path/your_project.xcodeproj'
project = Xcodeproj::Project.open(project_path)
ステップ1(OK)
2-コマンドラインからテストを実行するシェルスクリプトを作成します。このスクリプト受信は、テストが実行されなければならないスキームを含むように編集することができ、すべてのテストが成功するか失敗するまでスキームごとにスキームをループする。
#!/bin/bash
#!/bin/bash -e
# build-test.sh
# Set bash script to exit immediately if any commands fail.
set -e
## declare the schemes to test
declare -a arr=("Scheme01UnitTests" "Scheme02UnitTests")
## Parameters
## -s The SDK to use (iphoneos, iphonesimulator) default "iphonesimulator"
## -o The simulator Operating System, default 11.2
## -c Configuration (Debug, Release), default Debug
SDK="iphonesimulator"
OS=11.2
CONFIG="Debug"
#Parsing arguments
while getopts "s:o:c:" option; do
case $option in
s) SDK=$OPTARG
;;
o) OS=${OPTARG}
;;
c) CONFIG=${OPTARG}
;;
esac
done
echo "Using OS: $OS"
echo "Using SDK: $SDK"
echo "Using Configuration: $CONFIG"
## now loop through the above array
for s in "${arr[@]}"
do
echo "***************************************"
echo "** Test $s"
echo "***************************************"
cmd="set -o pipefail && env \"NSUnbufferedIO=YES\" xcodebuild -workspace MyWorkspace.xcworkspace -scheme $s -sdk $SDK -destination 'platform=iOS Simulator,name=iPhone 6s,OS=$OS' -configuration $CONFIG test | xcpretty -r junit --no-color -o 'build/reports/TEST-${s}.xml'"
eval $cmd
done
exit 0;
ステップ2(OK)
この情報がお役に立てば幸い!
関連する問題
- 1. TeamCityプロジェクトの作成を自動化する方法はありますか?
- 2. コマンドラインを使用して新しいXCodeプロジェクトを作成する方法はありますか?
- 3. iosプロジェクトから自動的にUML図を作成する方法はありますか?
- 4. コマンドラインからXcodeプロジェクトをビルドする方法は?
- 5. デリゲートの作成を自動化するXCodeプラグインはありますか?
- 6. Macでコマンドラインからsfmlプロジェクトをコンパイルする方法はありますか?
- 7. コマンドラインからAndroidプロジェクトを作成する方法
- 8. XcodeでCVSからプロジェクトをデタッチする方法はありますか?
- 9. Xcode 8/xcodebuild:コマンドラインから 'Update Signing'を起動する方法は?
- 10. Xcodeワークスペースで自分のスキームにポッドしかありません。
- 11. Outlookプロファイルを自動作成する方法はありますか?
- 12. CoffeeScript vimでBufWritePostを自動作成する方法はありますか?
- 13. xcodeでiosプロジェクトの動的ライブラリを作成する方法は?
- 14. コマンドラインまたはpowershellからVisual Studioプロジェクトを作成する
- 15. xcodeコマンドラインからipaを生成する
- 16. コマンドラインからgithubにプッシュする権限を自分自身に与える方法はありますか?
- 17. SQL Serverデータベースからプロパティを自動的に作成する方法はありますか?
- 18. コマンドラインからAndroidプロジェクトを作成
- 19. PostgreSQLとJPAのエンティティクラスから自動的にテーブルを作成させる方法はありますか?
- 20. コマンドラインからPowerShell(スクリプトではありません)を起動する方法
- 21. eclipseでJavaプロジェクトのコピーを作成する方法はありますか?
- 22. Xcodeプロジェクトを自動的に生成することはできますか?
- 23. SonarQube 6.3でプロジェクトのスナップショットの生成を制御および自動化する方法はありますか?
- 24. アンインストーラファイルから自動アンインストーラを無効にする方法はありますか?
- 25. Excelから自動的にデータをエクスポートする方法はありますか?
- 26. コマンドラインを使用してVS内のソリューションからプロジェクトを除外する方法はありますか?
- 27. gradleプロジェクトのコマンドラインから統合テストのプロパティをオーバーライドする方法はありますか?
- 28. iPhoneカメラでXCodeプロジェクトを作成する必要がありますか?
- 29. GUIまたはコマンドラインから同じアプリケーションを起動するより良い方法はありますか?
- 30. NERDtree vim Pluginの自動作成イベントはありますか?
ローカルマシンで作成し、すべてをコミットしてCIに送信する前に、それらが「共有」されていることを確認する必要があります。 –
以下、私はこのニーズに対応するためのソリューションを用意しました。そのようなことをする必要はなく、完全に自動化されています。とにかくヘルプのためにTnx。 – YadirHB