当我在Swift中使用XCTest运行单元测试时,它们在代码覆盖范围关闭时运行正常。但是,一旦我尝试启用代码覆盖,我有一个失败的构建/测试,4个类给出以下错误消息:命令因信号失败:分段错误:11。在Swift中打开代码覆盖率时出现分段错误11
回答
没有代码,编译设置等,很难说肯定,但你应该检查的一件事是确保你在单元测试类中使用了一个@testable
导入标志。
例如,在您的单元测试课程的顶部名为MyApp
的项目中,您将包含以下导入@testable import MyApp
。
您还需要检查以确保您遵循了启用覆盖的流程。这些信息被记录在苹果的开发者门户:
我已经遵循了所有这些步骤。如果在引入代码覆盖率时出现了分段错误,那么将其引入项目以进行调试或研究比我目前所处的位置更深的一般建议是什么? – fadfad
这里是我工作(因为所有的其他建议并没有我的情况下工作)。当试图运行代码覆盖范围为ON的单元测试时,我在特定的Swift类上得到了分段错误11。事实证明,我们有像这样一类的财产三元表达式:
let cellBorder : CGFloat = MyHelperClass.isIPad() ? 10.0 : 6.0
使其成为一个懒惰的VAR解决了这一问题:
lazy var cellBorder : CGFloat = MyHelperClass.isIPad() ? 10.0 : 6.0
需要明确的是,代码编译和运行良好直到我们尝试开启代码覆盖范围。我也发现这个Open Radar和this guy's post概述了解决方案。似乎是一个苹果的错误。
这解决了我的问题!太棒了,@ n8tr –
我有同样的问题。 'lazy'解决了,但是这也解决了它: 'let cellBorder:CGFloat = MyHelperClass.isIPad()? CGFloat(10.0):CGFloat(6.0)' – Dmitry
查看有关类似问题的此错误报告。 https://bugs.swift.org/plugins/servlet/mobile#issue/SR-1825
当我实现一个需要一个作为惰性变量实现的可选变量的协议时,我得到了同样的错误。
- 1. PHPUnit代码覆盖率给出了zend_mm_heap损坏或分段错误11
- 2. 存档iOS应用程序时出现“分段错误:11”(Swift)
- 3. 分段错误:11 Swift 2
- 4. 在C中打开文件时出现分段错误?
- 5. 代码覆盖率:.NET代码覆盖率和SonarQube VSTS集成
- 6. C打印时出现分段错误
- 7. 代码覆盖率 - 哪个代码覆盖哪个代码?
- 8. 分析代码覆盖率消失
- 9. VSTS代码覆盖错误?
- 10. XCode - 代码覆盖率?
- 11. 全部代码覆盖率
- 12. TDD和代码覆盖率
- 13. Appium iOS代码覆盖率
- 14. PHPUnit代码覆盖率
- 15. Grails 3代码覆盖率
- 16. 代码覆盖率为Android
- 17. 代码覆盖率统计
- 18. MSTest代码覆盖率
- 19. PHPUnit代码覆盖率0%
- 20. Jacoco代码覆盖率
- 21. Xcode 8代码覆盖率
- 22. 差代码覆盖率
- 23. 代码覆盖率/分支覆盖建议值
- 24. 即使在更改代码时也会出现分段错误
- 25. 为什么我的C代码打印分段错误:11?
- 26. 在LLVM代码覆盖率/ Slather中实现了哪些覆盖标准?
- 27. swift中的协议引用是抛出分段错误11
- 28. 在openCL中clBuildProgram时出现-11错误
- 29. 使用C#代码打开Excel工作簿时出现错误
- 30. Jacoco代码覆盖率显示Jenkins覆盖率为0%
这可能是证书或构建目标的问题吗?我发现这个消息来源说这是从归档中获取seg故障时的问题。也许尝试重建证书? http://stackoverflow.com/questions/26731198/swift-segmentation-fault-when-compiling-for-archive-from-ios-7 – Cole
请提供更多详细信息 –