尝试使用 Quick 在项目中 运行 测试时出现分段错误
Segmentation fault when trying to run tests in project using Quick
这是我的 LoginViewControllerSpec class 的样子:
class LoginViewControllerSpec: QuickSpec {
override func spec() {
describe("LoginViewController") {
var loginViewController: LoginViewController!
beforeEach {
loginViewController = LoginViewController()
}
}
}
当尝试 运行 这个特定的测试时,我收到错误提示
Command failed due to signal: Segmentation fault: 11
我发现这是由我的 LoginViewController 实现 BSKeyboardControlsDelegate 引起的,它是通过 CocoaPods 安装的 Objective-C 库。
所以我猜这是因为我的测试包无法访问 BSKeyboardControls。
这是我的 Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
inhibit_all_warnings!
pod 'BSKeyboardControls'
target 'SwitchboardTests' do
use_frameworks!
pod 'Quick'
pod 'Nimble'
end
我已经尝试使用我的测试包将 link_with 添加到 link BSKeyboardControls,但它不起作用。
如果我应该如何配置我的项目,以及我的 Podfile 应该是什么样子,我将不胜感激。
我发布了一个答案以防其他人遇到类似问题。
解决方案是将 use_frameworks!
移出目标范围。所以现在我也在为 Objective-C pods 使用框架。这样做你不再需要在桥接头文件中导入你的 Objective-C 库,你只需像这样导入它们:
import BSKeyboardControls
这是我的 LoginViewControllerSpec class 的样子:
class LoginViewControllerSpec: QuickSpec {
override func spec() {
describe("LoginViewController") {
var loginViewController: LoginViewController!
beforeEach {
loginViewController = LoginViewController()
}
}
}
当尝试 运行 这个特定的测试时,我收到错误提示
Command failed due to signal: Segmentation fault: 11
我发现这是由我的 LoginViewController 实现 BSKeyboardControlsDelegate 引起的,它是通过 CocoaPods 安装的 Objective-C 库。
所以我猜这是因为我的测试包无法访问 BSKeyboardControls。
这是我的 Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
inhibit_all_warnings!
pod 'BSKeyboardControls'
target 'SwitchboardTests' do
use_frameworks!
pod 'Quick'
pod 'Nimble'
end
我已经尝试使用我的测试包将 link_with 添加到 link BSKeyboardControls,但它不起作用。
如果我应该如何配置我的项目,以及我的 Podfile 应该是什么样子,我将不胜感激。
我发布了一个答案以防其他人遇到类似问题。
解决方案是将 use_frameworks!
移出目标范围。所以现在我也在为 Objective-C pods 使用框架。这样做你不再需要在桥接头文件中导入你的 Objective-C 库,你只需像这样导入它们:
import BSKeyboardControls