当我在Swift中使用XCTest运行单元测试时,它们在关闭代码覆盖时运行良好。但是,一旦我尝试启用代码覆盖率,我就有一个失败的构建/测试,其中有4个类提供了以下错误消息:命令由于信号而失败:分段错误: 11。
发布于 2016-02-24 00:11:48
以下是对我有用的东西(因为所有其他建议在我的情况下都不起作用)。当我试图在打开代码覆盖率的情况下运行单元测试时,我在某个Swift类上得到了一个分段错误11。原来,我们在类的属性上有一个三元表达式,如下所示:
let cellBorder : CGFloat = MyHelperClass.isIPad() ? 10.0 : 6.0使它成为一个懒惰的变量解决了这个问题:
lazy var cellBorder : CGFloat = MyHelperClass.isIPad() ? 10.0 : 6.0为了明确起见,这些代码编译并运行了很好的,直到我们尝试打开代码覆盖率。我还找到了概述解决方案的开放雷达和这家伙的职位。似乎是苹果的窃听器。
发布于 2016-01-06 14:01:21
如果没有代码、构建设置等,很难确定,但您应该检查的一件事是确保您在单元测试类中使用了@testable导入标志。
例如,将一个名为MyApp的项目放在单元测试类的顶部,您将包括在下面的导入@testable import MyApp中。
您还需要检查以确保您一直遵循启用覆盖率的过程。这些信息记录在苹果的开发者门户上:
发布于 2016-07-23 15:56:44
请参阅有关类似问题的错误报告。https://bugs.swift.org/plugins/servlet/mobile#issue/SR-1825
在实现协议时,我也遇到了同样的错误,该协议需要一个可选变量,而这个变量是我作为惰性变量实现的。
https://stackoverflow.com/questions/34634486
复制相似问题