44

Xcode 5 の新しい XCTest フレームワークでいくつかの単体テストを作成しました。

ほとんどの場合、テストは成功しているように見えますが、テストを十分な回数連続して実行すると、最終的に「テストに失敗しました」というメッセージが表示され、コンソールに が表示されるという奇妙な動作に遭遇しましたがProgram ended with exit code 0、すべてのテストの横にある緑色のチェックマーク。

ここで何がうまくいかないのですか?

4

9 に答える 9

17

これは間違いなくバグです。https://bugreport.apple.com/からレポートを送信してください。私のレポート (15251050) を参照してください。

于 2013-10-17T14:38:56.263 に答える
2

Build Clean は私にとってはうまくいきました...とにかく時々。製品 -> クリーン。

于 2014-01-28T23:08:34.307 に答える
2

バグが修正されるまで、プロジェクトを閉じてから再度開きます。

于 2013-11-14T03:21:10.893 に答える
1

出力コンソールを見ると、Xcode がテスト スイートの実行を開始していることに気付くはずです。

Test Suite 'SomeClassTests' started at 2013-11-30 23:19:34 +0000

しかし、テストケースを実行せずに突然終了します:

Program ended with exit code: 0

テストが失敗したという通知が表示されます。

問題がすぐに再発するため、Xcode を再起動しても一時的にしか効果がありません。

Xcode でのテストの実行を停止し、xctoolを使用してコマンド ラインですべてのテストを実行しました。

于 2013-11-30T23:35:27.767 に答える
1

私にとって、この問題は不適切な OCMock 構成に関連していると思います。OCMock を (完全に) 削除し、OCMock の推奨どおりにプロジェクトに再度追加すると、問題修正されたようです。

私が間違っていたいくつかの特定のこと:

  1. #import "OCMock.hの代わりに使用していました#import "OCMock/OCMock.h。Xcode は前者をオートコンプリートしました。
  2. 以前に別のディレクトリ構造で OCMock をインストールしようとしたため、ライブラリ検索パスに不良リンクが残っていました。
  3. これはばかげていますが、この問題をデバッグしようとして、セットアップ メソッドで OCMockObject のインスタンス化をコメント アウトし、コメントを外すのを忘れていました。nil OCMockObject は、他の回答で説明されているように、同様の動作を引き起こしました。これは奇妙です..現在のプロジェクトでは、セットアップでインスタンス化された OCMockObject を使用する 2 つのテストがあります。どちらも失敗するはずです。ただし、そのうちの 1 つが通過します。2 つの間の唯一の違いは、以前に通過していたものが合法的に通過することです...

とにかく、OCMock を正しくセットアップすると、テストは正常に機能します

于 2014-02-28T23:26:17.153 に答える
0

私が使用しているテストはロジック テストですが、Xcode は iPhone シミュレーターを実行したいと考えています。テストを再び機能させるのに苦労した後、メニューからiPhoneシミュレーターのコンテンツと設定をリセットしましたが、これが役に立ちました。

于 2014-05-29T04:15:27.803 に答える
0

このバグは Xcode 5.1 で修正されました。

Xcode 5.1 リリース ノート

注記:

テスト ターゲット [テスト名] でエラーが発生しました (テスト プロセスはコード -1 で終了しました)

シミュレータを終了して再起動することにより、回復を試みます。(15929053)

于 2014-05-13T17:46:14.063 に答える