Posted at

swiftで書いたテストがXcodeで実行できない

More than 3 years have passed since last update.

iosのテストをswiftで実装しようと思ったら以下のようなエラーがでて実行できなくなった。

Test session exited(82) without checking in. Executable cannot be loaded for some other reason, such as a problem with a library it depends on or a code signature/entitlements mismatch.

KIFを使ったテストでこのエラーがでたが、他のテストライブラリでも同様の問題が発生しているらしい。

https://github.com/Quick/Quick/issues/141

~/Library/Developer/Xcode/DerivedData を削除すればよいとか、UIKitをインポートすればよいとか、cleanしてビルドすればよいとか色々な説があったが、自分の環境ではビルドターゲットを作り直したらうまくいった。

具体的には以下の手順


  1. プロジェクトのTARGETSにあるテストのターゲット(xcodeが自動で生成したのであれば、{ProjectName}Tests )を削除


  2. Manage Schemes...からこのターゲットのスキームを削除

  3. ソースツリーから {ProjectName}Tests のディレクトリを削除

  4. ターゲットの追加からCocoa Touch Testing Bundleを追加。このときswiftを選ぶ


  5. New Scheme...から新しくつくったターゲットのスキームをつくる

  6. Bridging-Headerを設定

  7. CocoaPodsをつかってるならupdate

  8. 普通にswiftでテストをかく