在Swift中打开代码覆盖范围时出现分段错误11

当我在Swift中使用XCTest进行unit testing时,它们在代码覆盖被closures时运行正常。 但是,一旦我尝试启用代码覆盖,我有一个失败的build设/testing与4类给出以下错误信息: 命令失败,由于信号:分割错误:11

没有代码,编译设置等等,很难说肯定,但你应该检查的一件事是确保你在unit testing类中使用@testable导入标志。

例如,在你的unit testing类的顶部有一个名为MyApp的项目,你可以使用下面的import @testable import MyApp

您还需要检查以确保您已经遵循了启用覆盖的stream程。 这些信息logging在苹果的开发者平台上:

代码覆盖| 苹果开发者

这是什么为我工作(因为所有其他的build议没有在我的情况下工作)。 当我尝试运行代码覆盖范围为ON的unit testing时,我在特定的Swift类上得到了分段错误11。 事实certificate,我们对类的属性有如下的三元expression式:

 let cellBorder : CGFloat = MyHelperClass.isIPad() ? 10.0 : 6.0 

使其成为一个懒惰的变种解决了这个问题:

 lazy var cellBorder : CGFloat = MyHelperClass.isIPad() ? 10.0 : 6.0 

要清楚,代码编译和工作正常, 直到我们尝试打开代码覆盖 。 我也发现这个开放式雷达和这个家伙的post ,概述了解决scheme。 似乎是一个苹果的错误。

看到有关类似问题的这个错误报告。 https://bugs.swift.org/plugins/servlet/mobile#issue/SR-1825

当实现一个需要一个可选variables的协议时,我得到了同样的错误,我实现了一个懒惰的变种。