25

だから、私はすでに既存のプロジェクトを手元に持っており、アップルが提供するこの新しい派手な UI テスト バンドルを使用して、いくつかの UI テストを作成しようとしています。問題は、テスト ターゲットが外部フレームワークにアクセスできないことです (そして、そのうちの 1 つをセットアップする必要があります)。ビルド フェーズでフレームワークを追加し、メイン ターゲットからのフレームワーク検索パスに対処しても、何も起こりません。

ブラウジングの一日の後、私は「物事をちょっと違うものにする」ということを1つだけ見つけました. Bundle Loader と Test Host を$(BUILT_PRODUCTS_DIR)/App.app/Appに設定することで、外部フレームワークを test.m にインポートできませんでしたが、それを行うクラスを自分でインポートできました。そして、それがいくつかのものを壊さない限り、それはすべてうまくいきます. Bundle と Host を設定すると、UI テストで起動メソッドを実行できなくなります。

[[[XCUIApplication alloc] init] launch];

エラーでクラッシュします:アサーション エラー: UI テストの失敗 - アプリの状態はまだ終了していません。

最後に、セットアップから起動メソッドを削除し、すべてのテストを手動でトリガーすることができるため、実行する前に毎回アプリケーションを再起動しますが、この解決策は非常に間違っているようです (特に大きなプロジェクトの場合)。この問題を処理する適切な方法を知っている人はいますか?

4

1 に答える 1

1

このために私が行ったことは、環境変数を追加しXCUIApplicationて、UI テストが実行されていることを指定することです。#DEBUG次に、アプリケーションの主要部分でプリプロセッサ チェックを行い、test環境変数が設定されているかどうかをチェックします。ある場合は、UI テストに必要な手順を実行します。

基本的に、これにより、UI テストの実行に必要な方法でアプリを構成できます。また、プリプロセッサ チェックによって、リリース ビルド用のセットアップ コードが完全に削除されることも意味します。

于 2015-08-03T10:59:45.920 に答える