【Swift/Xcode】No such module 'XCTest'の解決法!

この記事からわかること

  • Xcode発生したNo such module 'XCTest'原因解決方法
  • 解決方法:ビルドフェーズライブラリ組み込む

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

XcodeにてXCTestフレームワークを使用してUnit Testを実装しようとした際に発生したエラーの原因と解決方法をまとめていきます。

No such module 'XCTest'

今回発生したエラー「No such module 'XCTest'」インポートしようとしているモジュールが見つからない場合に発生するエラーです。

【Swift/Xcode】No such module 'XCTest'の解決法!

このエラーはXCTestフレームワークを使用してUnit Testを実装しようとした流れの中の以下の部分で発生しました。

  1. プロジェクトの生成(Include Testsにチェック/Interface:Swift UI)
  2. 対象メソッドをContentView構造体に用意
  3. テストメソッドを[プロジェクト名]Testsクラス内に用意
  4. 「[プロジェクト名]Tests.swift」のMembershipの登録 ← この直後に発生!
  5. 【Swift/Xcode】XCTestの使い方!Unit Test(単体テスト)を作ろう

テストメソッドを実装した「[プロジェクト名]Tests.swift」ファイルのMembershipにプロジェクト(Swift_Test)を追加した際にエラーは発生しました。


import XCTest // No such module 'XCTest'
@testable  import Swift_Test

final class Swift_TestTests: XCTestCase {

    override func setUpWithError() throws {
    }

    override func tearDownWithError() throws {
    }

    func testExample() throws {
        XCTAssertEqual(ContentView.canConvertToNumber("123") == true,true)
    }

    func testPerformanceExample() throws {
        self.measure 
        }
    }
}

なぜ先ほどまで発生していなかったエラーがMembershipを追加したことで発生したかは分かりませんが、Xcodeを再起動したり、最新のXcodeにアップデート、「Clean Build Folder」の実行、「DerivedData」を丸々削除したりしても解決しませんでした。

解決方法:ビルドフェーズにライブラリを組み込む

最終的に解決できたのはビルドフェーズにライブラリを組み込む方法です。ターゲットをビルドする際のビルドフェーズ構成は「メインターゲット(TARGETS)」>「Build Phases」タブから設定できます。その中の「Link Binary With Libraries」をクリックして「+」ボタンを押します。

【Swift/Xcode】No such module 'XCTest'の解決法!

入力欄に「XCTest」と入力し「XCTest.framework」を選択して「Add」をクリックします。以下のように追加されれば完了です。

【Swift/Xcode】No such module 'XCTest'の解決法!

Xcodeを再起動して念の為「Clean Build Folder」を実行し、再度テストを実行してみると...

【Xcode】DerivedDataとは?「Build Failed」の解決方法!

無事成功しました。

【Swift/Xcode】XCTestの使い方!Unit Test(単体テスト)を作ろう

そもそもMemberShipを使用せずとも@testableを使用することでも別ターゲットのファイルを参照できるので参考にしてください。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index