xcodebuildのログをxcprettyで整える
Xcode 5になってからxcodebuild
も進化していて、Xcode 4までネックになっていたApplication Testsの実行も簡単になりました。
そういうわけで自分にとってのxctool
の必要性は薄まり、あとはログさえキレイになってくれればいいのになあと思っていたのですが、そんなときにxcpretty
が登場しました。
xctoolとの違い
xctool
はxcodebuild
を置き換えることを目的としていましたが、xcpretty
はxcodebuild
と共存してログの整形のみを行います。
xctool
の場合、”xcodebuild
では動くけどxctool
では動かない”という状況に遭遇することがありますが、
xcpretty
はビルドやテストの実行自体にxcodebuild
を利用するので、既にxcodebuild
で進んでいるプロジェクトでは簡単に利用を始めることができます。
インストール方法
gem install xcpretty
使い方
xcodebuild | xcpretty -c
実行例
例としてISHTTPOperationのユニットテストの結果をxcpretty
で出力します。
xcodebuild clean test -sdk iphonesimulator -scheme ISHTTPOperation -configuration Debug -destination "name=iPhone Retina (3.5-inch),OS=7.0" | xcpretty -c
結果は以下のようになります。テスト結果として必要十分な情報量だと思います。
✓ Cleaning ISHTTPOperation/ISHTTPOperation [Debug]
✓ Building ISHTTPOperation/ISHTTPOperation [Debug]
✓ Compiling ISHTTPOperationQueue.m
✓ Compiling NSOperationQueue+HTTP.m
✓ Compiling ISHTTPOperation.m
✓ Building library libISHTTPOperation.a
✓ Building ISHTTPOperation/ISHTTPOperationTests [Debug]
✓ Running script 'Run Script'
Test Suite '/Users/ishkawa/Library/Developer/Xcode/DerivedData/ISHTTPOperation-bmnqbihsbwzsicguaxfhmfoznrvq/Build/Products/Debug-iphonesimulator/ISHTTPOperationTests.octest(Tests)' started
Test Suite 'ISHTTPOperationQueueTests' started
✓ ISHTTPOperationQueueTests testCancelOperationsWithHTTPMethod (0.016 seconds)
✓ ISHTTPOperationQueueTests testCancelOperationsWithHost (0.001 seconds)
✓ ISHTTPOperationQueueTests testCancelOperationsWithPath (0.001 seconds)
✓ ISHTTPOperationQueueTests testCancelOperationsWithURL (0.000 seconds)
✓ ISHTTPOperationQueueTests testDefaultQueue (0.002 seconds)
Test Suite 'ISHTTPOperationTests' started
✓ ISHTTPOperationTests testCancel (0.100 seconds)
✓ ISHTTPOperationTests testCancelAsynchronously (0.000 seconds)
✓ ISHTTPOperationTests testConcurrencyType (0.000 seconds)
✓ ISHTTPOperationTests testDeallocOnCancelAfterStart (0.100 seconds)
✓ ISHTTPOperationTests testDeallocOnCancelBeforeStart (0.100 seconds)
✓ ISHTTPOperationTests testDesignatedInitializer (0.000 seconds)
✓ ISHTTPOperationTests testErrorConnection (0.101 seconds)
✓ ISHTTPOperationTests testNormalConnection (0.202 seconds)
✓ ISHTTPOperationTests testQueueing (0.000 seconds)
Test Suite 'NSOperationQueueHTTPTests' started
✓ NSOperationQueueHTTPTests testDefaultHTTPQueue (0.000 seconds)