【发布时间】:2015-03-03 17:58:55
【问题描述】:
在我们的单元测试套件中,我们创建和销毁了大量使用":memory:" 路径的SQLite 数据库。有时,仅当在 iOS 模拟器上运行时,这些数据库的创建会失败并显示相当神秘的消息:
Database ":memory:": unable to open database file
99% 的时间,这些请求都会成功。 (发生此故障后,同一测试运行中的后续测试通常会成功。)但是当您在自动构建验收测试中使用它时,您需要 100%。
我们已针对内存消耗(在正常范围内)和磁盘空间可用性(20GB+ 可用)进行了检测。
有什么想法吗?
更新:根据下面 Richard 的建议,通过额外的日志记录捕获了这种情况。这是日志输出:
SQLITE ERROR: (28) attempt to open "/Users/xxx/Library/Developer/CoreSimulator/Devices/CF762060-7D23-4C79-A466-7F20AB6233E7/data/Containers/Data/Application/582E1ED0-81E0-4CC7-A6F6-DBEBC101BBE8/tmp/etilqs_1ghbf1MSTa8ilSj" as
SQLITE ERROR: (14) cannot open file at line 30595 of [f66f7a17b7]
SQLITE ERROR: (14) os_unix.c:30595: (17) open(/Users/xxx/Library/Developer/CoreSimulator/Devices/CF762060-7D23-4C79-A466-7F20AB6233E7/data/Containers/Data/Application/582E1ED0-81E0-4CC7-A6F6-DBEBC101BBE8/tmp/etilqs_1ghbf1MST
【问题讨论】: