0

XCTest 単体テストを実行する Xcode 5 CI サーバーがあります。

私のテスト ケースは、特定のアクションをトリガーするためにブレークポイントに依存しています。これらのアクションは、テストの実行に不可欠です。

テストをローカルで実行すると、すべてが成功します。問題は、ボットがサーバー上でテストを実行すると、ブレークポイントが無視されているように見えることです。

テスト用に、警告音を鳴らしてサンプル ブレークポイントを試しました。ブレークポイントを共有し、共有ブレークポイントをプロジェクトの git リポジトリにコミットしました。ボットは、ブレークポイントが含まれているプロジェクトを正しくチェックアウトします (これは、/Library/Server/Xcode/Data/BotRuns/Cache/... でプロジェクトを調べることで確認できます)。

ただし、ボットが実行されると、ブレークポイントはトリガーされません。音が聞こえず、実行が一時停止しません。

この動作は明らかにほとんどの場合に理にかなっていますが、私の特定のケースでは、ブレークポイントが無視されないようにボットを構成する方法はありますか?

4

1 に答える 1

1

これを有効にするかどうかに関係なく、テストをテスト対象のシステムの外部にあるもの (ブレークポイントなど) に依存させて、テストが確実にパスするようにすることは、私には壊れた設計のように思えます。

理想的には、テストはインタラクティブまたは非インタラクティブな方法で任意のマシンで実行できる必要があります。ブレークポイントに「評価後に自動的に続行」フラグが設定されていることを保証できないため、非インタラクティブな実行には絶対に適していないようです。

xcodebuildテストにブレークポイントを使用すると、他のビルド システムと同様にテストを実行するための Xcode への依存関係が追加さxctoolれ、プロジェクト ファイル内のブレークポイントを理解することさえできない場合があります。

テストをリファクタリングして、ブレークポイントへのこの依存関係を削除します。それについて助けが必要な場合は、素晴らしいスタック オーバーフローの質問のように思えます ;)

于 2014-03-14T14:22:20.523 に答える