2017-01-09 10 views
0

私のアプリケーションで使用しているDBストアとしてレルムを使用してテストケースを実行しようとしています。 iOSデバイスでの操作の保存と実行は期待通りに機能しています。しかし、シミュレータでユニットテストケースを実行しようとしています、テスト・ケースは、次のエラーで失敗し、レルムDBユニットのテストでエラーが発生しました: "make_dir()failed"

frameworkname.realm::find failed with error:Unable to open a realm at path '/Users/username/Library/Developer/CoreSimulator/Devices/D4700477-****-****-****-065C******7F2/data/Documents/frameworkname/frameworkname.realm.management': make_dir() failed: No such file or directory. 

は私がみんなにデバイスディレクトリの読み書き権限を設定しようとしたが、まだそれは同じことをスローしますエラー。

+0

うーん、どのように正確に生成されているレルムファイルのファイルパスのURLですか?それは相対的な経路ですか? – TiM

+0

このファイルのファイルパスは内部であると仮定します。私はこのファイルのために特定のファイルパスを設定しません。 –

+0

メモリ内のテスト構成を試してみませんか?私は自分のアプリケーションをテストするためにそれを使用して、それは本当に良い、特にあなたがシミュレータ自体によって保存されたデータを妨害しないために動作します。 https://realm.io/docs/objc/latest/#testing-and-debuggingを見てください – Orlando

答えて

0

make_dir() failedエラーメッセージには、書き込めないディレクトリにレルムファイルを開こうとしたことが示されます。書き込み可能なURLにファイルをコピーする

は、次のような問題を解決することがあります

let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 
let documentsDirectory = paths[0] 
let realmURL = documentsDirectory.appendingPathComponent("data.realm") 
try! FileManager.default.copyItem(at: Realm.Configuration.defaultConfiguration.fileURL, to: realmURL) 

config.fileURL = realmURL 
Realm.Configuration.defaultConfiguration = config 

let realm = try! Realm()] 
関連する問題