当单元测试在 Xcode 7(GM 和 7.0.1)中运行时,测试通过;但在那之后,它立即崩溃了。
Xcode 调试控制台显示以下错误: libc++abi.dylib:因 std::__1::system_error 类型的未捕获异常而终止:互斥锁失败:参数无效
日志还显示了很多这样的错误:
测试套件“MyTests”于 2015-10-05 09:20:54.028 通过。 已执行 1 次测试,0.001 (0.002) 秒内出现 0 次失败(0 次意外)
测试套件“选定的测试”于 2015-10-05 09:20:54.028 通过。 执行了 1 次测试,0.001 (0.003) 秒内出现 0 次失败(0 次意外)
分析:/Users/ldupont/Library/Developer/Xcode/DerivedData/PlayerIOS-dpnbmmngypdkcsbguaesyimldsvi/Build/Intermediates/PlayerIOS.build/Debug-iphonesimulator/PlayerIOS.build/Objects-normal/x86_64/SCPlayerTabularCollectionView.gcda :无法打开:没有这样的文件或目录
分析:/Users/ldupont/Documents/Fuego/Player_ios/PlayerIOS/ObjectiveC.gcda:无法打开:没有这样的文件或目录
分析:/Users/testuser/Library/Developer/Xcode/DerivedData/PlayerIOS-dpnbmmngypdkcsbguaesyimldsvi/Build/Intermediates/PlayerIOS.build/Debug-iphonesimulator/PlayerIOS.build/Objects-normal/x86_64/SCPlayerTabularCollectionView.gcda:无法打开: 没有这样的文件或目录
分析:/Users/testuser/Library/Developer/Xcode/DerivedData/PlayerIOS-dpnbmmngypdkcsbguaesyimldsvi/Build/Intermediates/PlayerIOS.build/Debug-iphonesimulator/PlayerIOS.build/Objects-normal/x86_64/SCPlayerTabularCollectionView.gcda:无法打开: 没有这样的文件或目录
分析:/Users/testuser/Library/Developer/Xcode/DerivedData/PlayerIOS-dpnbmmngypdkcsbguaesyimldsvi/Build/Intermediates/PlayerIOS.build/Debug-iphonesimulator/PlayerIOS.build/Objects-normal/x86_64/SCPlayerTabularCollectionView.gcda :无法打开:没有这样的文件或目录
分析:/Users/testuser/Library/Developer/Xcode/DerivedData/PlayerIOS-dpnbmmngypdkcsbguaesyimldsvi/Build/Intermediates/PlayerIOS.build/Debug-iphonesimulator/
我的项目设置如下: 主要目标和测试目标: 启用代码覆盖支持:是 生成旧测试覆盖率文件:否 仪器程序流程:否
我也尝试将上述所有内容设置为“否”,但这没有帮助。
最佳答案
刚刚找到导致崩溃的原因 - 我正在使用的内部库是使用项目设置“仪器程序流程”=YES进行编译的,以便生成基于 gcov 的代码覆盖率。 Xcode 7 不再支持此功能,它放弃了对旧版 gcov 文件格式的支持,转而支持新的中间格式 — profdata。
我获得了该库的新版本,并将仪器设置设置为NO,然后崩溃消失了,所有单元测试都通过了。希望这可以帮助其他面临同样问题的人。
关于ios - Xcode 7 中的单元测试崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32953486/