iOS

iOSのUnitTestでCould not find test host for ~のエラーが出た時の対処法

iOSのUnitTestでCould not find test host for ~のエラーが出た時の対処法

本日作業していたら、久々のタイトルのエラーが出たので、備忘録のために対応方法をメモしておきます!

おそらくこのエラーが出るのは、XcodeのプロジェクトでSchemeConfigurationの設定を変更して、サーバーの接続先ごとのアプリを作ったり、Test用のConfigurationを作ったりして、それぞれのアプリごとに名前を変更したりした後に、UnitTestを実行するような時に発生するかなと思います。

このエラーを直すためには、UnitTestTargetTest Hostの設定を変更する必要があります。
↓の写真はXcodeのプロジェクトの画面のサンプルですが、以下の手順で該当の設定を開きます

  1. UnitTest用のTarget -> Build Settingsを選択する
  2. Test Hostと検索する

そしてここで上記の写真のように、各ConfigurationごとにProductNameを変更する必要があります。
上記のサンプルアプリでは、以下のようにProductNameの後ろに各Configurationsuffixをつけるようにしています。
自分はsuffixConfigurationの略称をつけているので、-DDなどをつけるようにしています。

修正前: $(BUILT_PRODUCTS_DIR)/HomeNote.app/HomeNote

修正後: $(BUILT_PRODUCTS_DIR)/HomeNote-DD.app/HomeNote-DD

ちなみに各Configurationごとの値を直接編集してもいいのですが、アプリの他の設定項目でも使用するので、1カ所変更すると、他の箇所も変更しなければいけません。
なので自分の場合は、各Configurationファイルに以下のようにsuffix用の変数を設定し、$(TARGET_NAME)$(PRODUCT_NAME_SUFFIX)という形で一括で設定できるようにしています。

PRODUCT_NAME_SUFFIX = -DD

参考情報

  • http://harumi.sakura.ne.jp/wordpress/2019/06/27/test_host%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%82%92%E6%B6%88%E3%81%99/
+1

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA