Xcode 5 の新しい XCTest フレームワークでいくつかの単体テストを作成しました。
ほとんどの場合、テストは成功しているように見えますが、テストを十分な回数連続して実行すると、最終的に「テストに失敗しました」というメッセージが表示され、コンソールに が表示されるという奇妙な動作に遭遇しましたがProgram ended with exit code 0
、すべてのテストの横にある緑色のチェックマーク。
ここで何がうまくいかないのですか?
Xcode 5 の新しい XCTest フレームワークでいくつかの単体テストを作成しました。
ほとんどの場合、テストは成功しているように見えますが、テストを十分な回数連続して実行すると、最終的に「テストに失敗しました」というメッセージが表示され、コンソールに が表示されるという奇妙な動作に遭遇しましたがProgram ended with exit code 0
、すべてのテストの横にある緑色のチェックマーク。
ここで何がうまくいかないのですか?
これは間違いなくバグです。https://bugreport.apple.com/からレポートを送信してください。私のレポート (15251050) を参照してください。
Build Clean は私にとってはうまくいきました...とにかく時々。製品 -> クリーン。
バグが修正されるまで、プロジェクトを閉じてから再度開きます。
出力コンソールを見ると、Xcode がテスト スイートの実行を開始していることに気付くはずです。
Test Suite 'SomeClassTests' started at 2013-11-30 23:19:34 +0000
しかし、テストケースを実行せずに突然終了します:
Program ended with exit code: 0
テストが失敗したという通知が表示されます。
問題がすぐに再発するため、Xcode を再起動しても一時的にしか効果がありません。
Xcode でのテストの実行を停止し、xctoolを使用してコマンド ラインですべてのテストを実行しました。
私にとって、この問題は不適切な OCMock 構成に関連していると思います。OCMock を (完全に) 削除し、OCMock の推奨どおりにプロジェクトに再度追加すると、問題が修正されたようです。
私が間違っていたいくつかの特定のこと:
#import "OCMock.h
の代わりに使用していました#import "OCMock/OCMock.h
。Xcode は前者をオートコンプリートしました。とにかく、OCMock を正しくセットアップすると、テストは正常に機能します
私が使用しているテストはロジック テストですが、Xcode は iPhone シミュレーターを実行したいと考えています。テストを再び機能させるのに苦労した後、メニューからiPhoneシミュレーターのコンテンツと設定をリセットしましたが、これが役に立ちました。
このバグは Xcode 5.1 で修正されました。
注記:
テスト ターゲット [テスト名] でエラーが発生しました (テスト プロセスはコード -1 で終了しました)
シミュレータを終了して再起動することにより、回復を試みます。(15929053)