UITestでSchemeを使いたかった

はじめに

Ble通信を用いたアプリのUITestでMockを作成し、ローカル環境でUITestを流す際はDebugのSchemeでUITestを行なっていたのですが、リモートにpushした際にCIで流すSchemeはReleaseを使っていた為テストがコケていました。

起こったこと

テスト以外のコード部分では問題なくSchemeを使って分岐ができていました。テストの部分だけなぜか分岐できずにハマりました。

結局何が問題だったかとSchemeをWebの記事を参考に何となく入れていただけだったので私がしっかり理解できていないことが問題でした。

解決策

UITestのSchemeを呼び出す際の判定用の名前をつける必要がありました。

プロジェクト>UITest>BuildSetting>Other Swift Flagsで検索>Other Swift Flagsに設定

以下のようにUITestのSchemeを設定します。

UITestで分岐を作る

これでSchemeの設定ができたのでUITest内で以下のように分岐をすればMockなどで使いたいときに使えます。

  #if Debug
  print("debug")
 #elseif Release
  print("release")
 #endif