2017-02-17 30 views
0

iOSアプリケーションのUIテストを作成しています。私は地元のjsonファイルからデータを読みたい。XCUITestでのローカルJSONファイルの読み込み

私はJSONファイルのパスを取得するには、次のコードを使用しています: Reading in a JSON File Using Swift

func testExample() { 

    readJSON() 
} 

func readJSON(){ 
    let bundle = Bundle(for:myTestClass.self) 
    if let path = bundle.url(forResource: "myurl", withExtension: "json"){ 
     print("Got the path") 
     print(path) 
    } 
    else{ 
     print("Invalid filename/path") 
    } 

私は、次のstackoverflowの質問のためのソリューションを使用して試してみました。うまくいきませんでした!すべてのヘルプをいただければ幸いです https://developer.apple.com/swift/blog/?id=37

また、私は、次のAppleのドキュメントを見ていました!

+0

は、あなたのJSONは、ローカルディレクトリに保存されているか、それはXcodeのに添付されているのですか? – KrishnaCA

答えて

0

ローカルのjsonファイルをBundleから読み取る方法は、iOSではありません。それは、次のように行われています:すべての

// "myUrl" is assumed to be your json file name 

if let pathStr: String = Bundle.main.path(forResource: "myurl", ofType: ".json") { 
    print("json path: \(pathStr)") 
} 
+0

これは、UIテストバンドルでローカルjsonファイルを読み取る方法とまったく同じです。 –

+0

@KushalJogi、何が問題なの?それは動作しませんか?私は知っているかもしれません – KrishnaCA

+0

メインバンドルはあなたが思っているものではなく、テストランナーのバンドルであり、私はあなたがそのjsonを持っていないと推測しているので、これはうまくいかないでしょう –

0

まず、あなたが.jsonファイルをチェックする必要があるテストファイルと同じターゲットです。ファイルは、メインターゲットである場合、あなたはBundle.mainを使用する必要がありますが、それはあなたのテストと同じターゲットである、

let t = type(of: self) 
let bundle = Bundle(for: t.self) 
let path = bundle.path(forResource: "myurl", ofType: "json") 
関連する問題