2016-11-23 5 views
1

私はSDKを確実に送ろうとしており、frameworkは意図したとおりに動作します。フレームワークのPlistから単体テストを読む

私はXCTestsを使っていくつかの単位テストを書いています。私はPlistからいくつかの情報を読む必要がありますが、パスは常にnilに終わります。

私が使用しています:

NSBundle *bundle = [NSBundle bundleForClass: [self class]]; 
NSString *path = [bundle pathForResource:@"aPList" ofType:@"plist"]; 

私は、ビルドフェーズを経由してコピーしたPlistを持っています。

+0

plistファイルのテストターゲットへのターゲット依存性は単なる考えですか? – OliverM

+0

@OliverMターゲットメンバーシップを意味する場合はyesです。 – Kheldar

+0

私は、ファイルがxctestの結果にコピーされているが、フレームワーク自体にはコピーされていないことを知っていました(これは私が期待していたものですが、Plistはエンドユーザーの開発者によって追加されるべきです)。テスト目的のために、私はそれをフレームワークターゲットに追加しましたが、結果はiffyです。 「実際のコンパイル」のターゲットと「コンパイルのテスト」のターゲットを追加するのは間違っています。より良いオプションはありますか?バンドルにアクセスするコードを書いていますか? – Kheldar

答えて

0

あなたのSDKのユーザは、通常、plistをフレームワークに追加するのではなく、自分のアプリ(主バンドル)に追加します。 SDKのクラスは、plistへのNSURL /パスで初期化できます。そうすれば、[[NSBundle mainBundle] pathForResource:@"aPList" ofType:@"plist"]はSDKで使用されるplistパスを取得するための単体テストとアプリケーションバンドルの両方で動作します。

+0

実際、これは最初のことでしたが、私はそれが私のテストではうまくいかないことを発見しました。 – Kheldar

関連する問題