Sponsoring
Configurationごとにアプリ名を変えた時に、UnitTestのtestableのModule名を共通の名前で使用できるようにする
本日作業していたら、久々のタイトルのエラーが出たので、備忘録のために対応方法をメモしておきます!
以下の記事でもやったように、Xcode
のプロジェクトでScheme
やConfiguration
の設定を変更して、サーバーの接続先ごとのアプリを作ったり、Test
用のConfiguration
を作ったりして、それぞれのアプリごとに名前を変更したりした後に、UnitTest
を実行すると、@testable import HomeNote
のようにテストコードで書いている箇所でエラーが出ます。
iOSのUnitTestでCould not find test host for ~のエラーが出た時の対処法iOSのUnitTestでCould not find test host for ~のエラーが出た時の対処法をまとめました...
そのエラーでは、ビルドするConfiguration
ごとの名前のModule
名を使用するように怒られていると思います。
しかしその通りにすると、以下のように書かないといけなくなると思います。
import XCTest
#if DEVELOP_DEBUG
@testable import HomeNote
#elseif DEVELOP_TEST
@testable import HomeNote-DT
...
#endif
このように各テストのファイルで書くのは現実的ではありません。
そこで、共通して@testable import HomeNote
のように書けるようにしましょう。
そのためには、以下の箇所のPRODUCT MODULE NAME
の設定を変更します。
- アプリの用の
Target
->Build Settings
を選択する PRODUCT MODULE NAME
と検索する
そこでおそらく各Configuration
ごとに別の名前が設定されていると思います。
これをTarget
と同じ名前に設定します。
実際は、$(TARGET_NAME)
の値を設定することで、実現できると思います。
これで以下のように、アプリのTarget
名でimportできるようになります!
import XCTest
@testable import HomeNote
+2
Sponsoring