なんとかするから、なんとかなる

エンジニア関係のことを書きます

iOS Carthageでモジュールを導入してXCTestで Module "なにかしらのモジュール" was not compiled for testing が出たときの対処方法

English version below

はじめに

XCTestでユニットテストを実行し用としたときにぶつかった問題です。

Carthageでモジュールを導入し、ユニットテストでそのモジュールを使用するときに少しつまづきました。

背景

XCTestで自身のプロジェクトをテストするとき、次のように書くと思います。

import XCTest

@testable import {Your Project}

今回はテストケースの中でモジュールを利用して、何かしら処理を実施しようとしたときに躓きました。

モジュールはCarthageを利用してプロジェクトに導入しています。

単純にimportしてみる

例えば次のように書くと

import "なにかのモジュール"

次のようなエラーが出ました

framework not found

@testableをつけてみる

別の方法で次のように書くと

@testble import "なにかのモジュール"

次のようなエラーが出ました

Module "なにかのモジュール" was not compiled for testing

対処方法

[Target] - [TestTarget] - [BuildPhases] - [Link Binary With Libraries] で対象のモジュールを指定する。

f:id:hopita:20180828233512p:plain:w400