iOSでユニットテストを実装する 質問する

iOSでユニットテストを実装する 質問する

私はフォローしましたこのチュートリアル少し行き詰まったときに、アプリでユニットテストを設定するためです。

このチュートリアルの箇条書き 8 では、次の画像が表示されます。これは、ビルド時に期待されるものです。代替テキスト http://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iphone_development/art/logic_test_failure_text_editor.jpg

しかし、ビルドすると、これは表示されません。次のエラー メッセージが表示されますCommand /bin/sh failed with exit code 1。また、ユニット テストによって作成されたエラー メッセージが表示されます。次に、最初のエラーを展開すると、次のメッセージが表示されます。

PhaseScriptExecution "Run Script" "build/3D Pool.build/Debug-iphonesimulator/LogicTests.build/Script-1A6BA6AE10F28F40008AC2A8.sh"
cd "/Users/james/Desktop/FYP/3D Pool"
setenv ACTION build
setenv ALTERNATE_GROUP staff
...
setenv XCODE_VERSION_MAJOR 0300
setenv XCODE_VERSION_MINOR 0320
setenv YACC /Developer/usr/bin/yacc
/bin/sh -c "\"/Users/james/Desktop/FYP/3D Pool/build/3D Pool.build/Debug-iphonesimulator/LogicTests.build/Script-1A6BA6AE10F28F40008AC2A8.sh\""

/Developer/Tools/RunPlatformUnitTests.include:412: note: Started tests for architectures 'i386'
/Developer/Tools/RunPlatformUnitTests.include:419: note: Running tests for architecture 'i386' (GC OFF)
objc[12589]: GC: forcing GC OFF because OBJC_DISABLE_GC is set
Test Suite '/Users/james/Desktop/FYP/3D Pool/build/Debug-iphonesimulator/LogicTests.octest(Tests)' started at 2010-01-04 21:05:06 +0000
Test Suite 'LogicTests' started at 2010-01-04 21:05:06 +0000
Test Case '-[LogicTests testFail]' started.
/Users/james/Desktop/FYP/3D Pool/LogicTests.m:17: error: -[LogicTests testFail] : Must fail to succeed.
Test Case '-[LogicTests testFail]' failed (0.000 seconds).
Test Suite 'LogicTests' finished at 2010-01-04 21:05:06 +0000.
Executed 1 test, with 1 failure (0 unexpected) in 0.000 (0.000) seconds

Test Suite '/Users/james/Desktop/FYP/3D Pool/build/Debug-iphonesimulator/LogicTests.octest(Tests)' finished at 2010-01-04 21:05:06 +0000.
Executed 1 test, with 1 failure (0 unexpected) in 0.000 (0.002) seconds

/Developer/Tools/RunPlatformUnitTests.include:448: error: Failed tests for architecture 'i386' (GC OFF)
/Developer/Tools/RunPlatformUnitTests.include:462: note: Completed tests for architectures 'i386'
Command /bin/sh failed with exit code 1

これはテストを実行しているときに非常に奇妙です (STFail が起動しているのがわかるように成功しています)。合格する別のテストを追加するとエラーが発生せず、テストは正常に動作しているからです。しかし、なぜこの追加のビルド失敗が発生するのでしょうか?

また、すぐに使えるはずのソリューション/テンプレートをダウンロードするときに、同じエラーが発生することも注目に値します。ここで何かを間違って設定したのではないかと思いますが、チュートリアルに 100% 正しく従っただけです。

編集:によるとこのブログこの郵便受けおよび他のいくつかの Web サイトでも、この問題に遭遇しているのは私だけではありません。この問題は xCode 3.2 のリリース以来発生しており、Apple Dev Center のドキュメントやチュートリアルなども 3.2 より前のバージョンであると想定されます。

しかし、これは既知の問題だと言う人もいれば、意図的だと考える人もいるようです。私は拡張コンソールとコード内メッセージの両方が欲しいですし、「Command /bin/sh...」エラーは絶対に嫌なので、そのようなアップデートは文書化されているはずだと思っています。いずれにしても、すぐに修正されることを願っています。

更新: xCode 3.2.1 のリリース以降に変更があったことが確認されました。

この画像:代替テキスト http://ing0.co.uk/info/pics/unittest-xcode-3.2.1.pngこれは 3.2.1 を使用したテストビルドからのものです。これは古いバージョン (3.1.4) からのものです:代替テキスト http://ing0.co.uk/info/pics/unittest-xcode-3.1.4.png(どちらのプロジェクトも変更はありませんでした)。

ベストアンサー1

「ターゲット」/「スクリプトターゲット名」の下の「スクリプトの実行」をダブルクリックし、次のように入力します。

# このテスト バンドル内のユニット テストを実行します。
"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 1> /tmp/RunUnitTests.out

基本的には追加する必要があります

1> /tmp/RunUnitTests.out

すでに存在するものに

おすすめ記事