Xcode Unit Testing with Cocoapods Ask Question

Xcode Unit Testing with Cocoapods Ask Question

I've been banging my head against a wall with this for the last few days but despite multiple Google/SO/Github searches I can't find a resolution to the issues I'm having!

All I'm trying to do is create some unit tests for my app which makes use of Firebase pods.

I'm using Xcode 7.3.1 & Cocoapods 1.0.1. Update: Issue remains with Xcode 8.0

With this podfile:

platform :ios, '9.0'
use_frameworks!
inhibit_all_warnings!

target 'MyApp' do
    pod 'Firebase'
    pod 'Firebase/Auth'
    pod 'Firebase/Database'
    pod 'Firebase/Storage'

    target 'MyAppTests' do
        inherit! :search_paths
    end
end

In my XCTest class I get

Missing required module 'Firebase'

error at @testable import MyApp

Alternatively with this podfile:

platform :ios, '9.0'
use_frameworks!
inhibit_all_warnings!

def common_pods
    pod 'SwiftyTimer'
    pod 'Firebase'
    pod 'Firebase/Auth'
    pod 'Firebase/Database'
    pod 'Firebase/Storage'
end

target 'MyApp' do
    common_pods
end

target 'MyAppTests' do
    common_pods
end

The tests build but my console is littered with warnings e.g.:

クラス <-FirebaseClassName-> は ...MyApp... と ...MyAppTests... の両方に実装されています。どちらか 1 つが使用されます。どちらが未定義ですか?

ベストアンサー1

私も同じ問題を抱えていました。pod 'Firebase'テストターゲットに移動することで解決しました。Podfile を次のように変更します。

platform :ios, '9.0'
use_frameworks!
inhibit_all_warnings!

target 'MyApp' do
    pod 'Firebase/Auth'
    pod 'Firebase/Database'
    pod 'Firebase/Storage'

    target 'MyAppTests' do
        inherit! :search_paths
        pod 'Firebase'
    end
end

おすすめ記事