【问题标题】:NSSearchPathDirectory.DocumentDirectory returns bogus pathNSSearchPathDirectory.DocumentDirectory 返回虚假路径
【发布时间】:2015-04-02 22:59:06
【问题描述】:

我一直在尝试对使用 Core Data 的 iOS 项目进行单元测试。我正在使用由 Xcode 生成的常用核心数据堆栈。失败的线路如下:

lazy var applicationDocumentsDirectory: NSURL = {
    let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
    return urls[urls.count-1] as NSURL
}()

在我的 Mac 上返回:file:///Users/juliantejera/Library/Developer/CoreSimulator/Devices/{UNIQUE ID}/data/Containers/Data/Application/{UNIQUE ID}/Documents/

在特拉维斯:file:///var/empty/Documents/

因此无法创建我的 NSManagedObjectContext 并且我的应用程序崩溃了。有什么解决办法吗?

【问题讨论】:

    标签: ios core-data travis-ci


    【解决方案1】:

    一周后,我终于能够通过在运行单元测试时为 NSPersistentStoreCoordinator 使用 NSInMemoryStoreType 来解决我的问题。

    var isRunningUnitTests = NSClassFromString("XCTest") != nil
    var storeType = isRunningUnitTests ? NSInMemoryStoreType : NSSQLiteStoreType
    

    【讨论】:

      【解决方案2】:

      就我而言,问题是 Kiwi 和 Realm 的结合: 我在测试规范的context 块中初始化了一个对象,这反过来又强制初始化一个Realm DB。不确定究竟是什么导致了这种奇怪的动作,但从那时起,我将它作为一个经验法则来初始化 beforeAll 块中的变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-13
        • 2020-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-14
        相关资源
        最近更新 更多