【XCTest】No target application path~のエラーについて

 どうも、ねこきち(@nekokichi1_yos2)です。

 

今回は、No target application path specified via test configuration、のエラーでつまずいたので、備忘録を残します。

 

発生タイミング

 

XCTestで特定のテストを実行したら発生した。

 

⌘Uだと正常に実行したけど(ただし、テスト結果がprint()などが機能しない)、XCTFail()だけの関数でも発生してしまう。

 

XCUITestでは問題なかった。

 

解決方法 

Podfileでテスト用TARGETの記述を追加

Podfileにて、下記を記述して、Pod installやPod Updateを繰り返したら、解決した

f:id:nekokichi_yos2:20210131214112p:plain


"inherit! :search_paths"を調べると

  • inherit : 継承
  • search_paths : 親の検索パス

の意味になるみたい。

 

つまり、

  • 親が持つCocoaPodの検索パスがなかった
  • 親と同じ検索パス、CocoaPodsの設定がなかった

からエラーが起こったと解釈。

 

確かに、エラー文では、BundleやPathがnullだ的なことが書かれていたし、親のモジュール(アプリ)を実行するから親の環境と同じでないといけない気はする。

 

GitHubDesktopで差分を確認すると、テスト用TARGETのinfo.plistにCFBundle~の設定値が追加されていた。

f:id:nekokichi_yos2:20210131222209p:plain

 

とにかく、XCTest + CocoaPod、を利用するなら、Podfileの記述はいじらない方がいい。

 

新規のXCTestファイル、TARGETを追加

 

当たり前だけど、既存のファイルとTARGETを削除し、新規のそれらを追加したら、上手く行った。

 

参考

qiita.com

stackoverflow.com

guides.cocoapods.org