まず、私の究極の目標は、xcodebuildコマンドを使って.plistファイルからHTMLレポートを生成することです。xcodebuildとxcprettyコマンドを使って.plistからHTMLレポートを生成する
しかし、私はosxプロジェクトの問題に直面しています。私の環境は
osx 10.11 el captain, xcode 7.3 and swift 2.2
私はこれを解決するためにスキャンをインストールしています。
gem install scan
スキャンスキャンリンクをインストールする方法は、型スキャンと入力し、Enterキーを押し、ターミナルで今
https://github.com/fastlane/fastlane/tree/master/scan
です。スキャンコマンドはすべてを行います。
しかし、私はこの簡単なコードでこのターミナルコマンドを実行したいと思います。私はbwlowような別の迅速ファイルからこの関数を呼び出す
import Foundation
class Command{
func terminalCommand(args: String...) -> Int32 {
let task = NSTask()
task.launchPath = "/usr/bin/env"
task.arguments = args
task.currentDirectoryPath = "path to my osx project"
task.launch()
task.waitUntilExit()
return task.terminationStatus
}
}
:このため、私は以下のコードを使用するリンクはこちらHow do I run an terminal command in a swift script? (e.g. xcodebuild)
let main = Command()
main.terminalCommand("scan")
ある
しかし、私はこれを実行した場合、それを私は 01を使用したよりenv: scan: No such file or directory
:エラーの下に表示さ私は私の迅速なコードを実行した場合、それは私のエラーと理由ターミナルコマンドが何であるかエラー
16:50:29]: [33mxcrun xcodebuild -list -project ./ios-ui-automation-demo.xcodeproj[0m
+-----------------------+------------------------------------+
| [32mSummary for scan 0.8.0[0m |
+-----------------------+------------------------------------+
| project | ./ios-ui-automation-demo.xcodeproj |
| scheme | ios-ui-automation-demo |
| clean | false |
| code_coverage | false |
| address_sanitizer | false |
| skip_build | false |
| output_directory | ./fastlane/test_output |
| output_types | html,junit |
| buildlog_path | ~/Library/Logs/scan |
| open_report | false |
| skip_slack | false |
| slack_only_on_failure | false |
| use_clang_report_name | false |
+-----------------------+------------------------------------+
[16:50:34]: [4m[36m$ set -o pipefail && env NSUnbufferedIO=YES xcodebuild -scheme ios-ui-automation-demo -project ./ios-ui-automation-demo.xcodeproj -destination 'platform=iOS Simulator,id=841044C8-5637-4652-BDC9-3BAB05248F15' build test | tee '/Users/me/Library/Logs/scan/ios-ui-automation-demo-ios-ui-automation-demo.log' | xcpretty [0m[0m
[16:50:34]: ▸ [35mLoading...[0m
[16:50:34]: ▸ [35msh: xcpretty: command not found[0m
下に示し、より私は私のコードの起動パス
task.launchPath = "/usr/local/bin/scan"
にこれを追加し
which scan and it returns /usr/local/bin/scan
スルーターミナルでうまく走るので、迅速なコードで実行する必要はありません。
お願いします。ありがとうございました。
もう1つ弱点ですが、私はosxでかなり専門家ではありません。最後に
おかげ
は、端末にxcpretty'た '行う見つけるために... xcpretty''への完全なパスを供給してください。 '/ path/to/xcpretty'のように戻ってきます。 –
@あなたの返事に感謝しますが、私のコマンドでエスケープシーケンスについて何を示しているのかはわかりません。もう一度お礼します。 – noor
カラーコードについてのコメントは無視してください...奇妙な書式設定( '4 [36m'などそれはあなたの質問に現れています)。 * –