Kituraを使ったプロジェクトをQuickでテストする

  • 0
    いいね
  • 0
    コメント

    普段はiosアプリ開発をしていてQuick/Nimbleを使ってテストを書いています。
    先日のtry!Swiftに参加したときにモチベーションが上がって、今更ながらサーバサイドswiftやってみようと思い立ちました。
    FrameworkにはKituraを採用しました。Kituraの導入方法についてはQiitaにもたくさん記事があるので省略します。
    今回は、いつものようにQuick/Nimbleを導入しようとした際にいくつかハマったポイントをまとめておきます。

    気をつけること

    carthageでbuildしたframeworkはmac用のを使う

    普段ios開発だけやっていて、--platform iOSが自分の中でデフォルトになってたのですぐに気づけませんでした。。

     carthage update --platform mac
    

    対象のTargetのBuild SettingsでEnable TestabilityをYESにする

    Noになっているとテスト実行した際に
    「Module 'XXX' was not compiled for testing」 
    と怒られます。

    スクリーンショット 2017-03-15 23.32.28.png

    テストTargetのBuild PhaseでTarget Dependenciesに対象のTargetを指定する

    これも指定していないと先ほどと同様に
    「Module 'XXX' was not compiled for testing」
    のエラーが出ます。

    スクリーンショット 2017-03-15 23.33.16.png

    Tests.swiftの配置場所

    $ swift test
    error: the package has an unsupported layout, unexpected source file(s) found: XXX/Tests/SampleTests.swift
    fix: move the file(s) inside a module
    

    これはXcode上のテスト実行では問題なかったんですが、コマンドからswift testでテストしようとすると怒られました。
    Tests直下じゃなく一つディレクトリ切ってあげれば大丈夫です。
    ただしディレクトリ名をXXXTestsとする必要があります。

    結果

    スクリーンショット 2017-03-15 22.46.09.png

    無事にQuickでテストできるようになりました。