Ios 使用Swift和Obj-C进行单元测试
我正在启动一个新的Swift项目,并尝试为其创建单元测试。我将Google分析框架添加到项目中,并链接了SystemConfiguration、CoreData、libsqlite3、libz和libGoogleAnalyticsServices 然后,我不得不手动创建一个桥接头,并添加我将立即使用的GA头。该应用程序已启动并运行,并发布到GA。然后我尝试添加一些单元测试 一旦发生这种情况,如果向测试目标添加桥接头,我会在桥接头中收到一个错误,该错误导致未找到“GAI.h”文件。我还收到编译器发出的Ios 使用Swift和Obj-C进行单元测试,ios,swift,unit-testing,cocoapods,Ios,Swift,Unit Testing,Cocoapods,我正在启动一个新的Swift项目,并尝试为其创建单元测试。我将Google分析框架添加到项目中,并链接了SystemConfiguration、CoreData、libsqlite3、libz和libGoogleAnalyticsServices 然后,我不得不手动创建一个桥接头,并添加我将立即使用的GA头。该应用程序已启动并运行,并发布到GA。然后我尝试添加一些单元测试 一旦发生这种情况,如果向测试目标添加桥接头,我会在桥接头中收到一个错误,该错误导致未找到“GAI.h”文件。我还收到编译器发
分段错误11
错误。没有桥接标头时,错误保持不变
我已经尝试将我的测试目标与SystemConfiguration、CoreData、libsqlite3、libz和libGoogleAnalyticsServices链接起来。这并不能消除错误
目前,我的桥牌头球没有太多问题
#import "GAI.h"
#import "GAILogger.h"
#import "GAITrackedViewController.h"
#import "GAIFields.h"
我也在使用cocoapods,但我现在不在Google Analytics中使用它,因为每次运行pod过程时,我都需要手动更改配置文件。如果有帮助,这里是我的pod文件:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'
pod 'JVFloatLabeledTextField'
# Swift Pods
pod 'Alamofire'
pod 'JSONHelper'
target 'example' do
end
target 'exampleTests' do
pod 'Quick', :git => "https://github.com/Quick/Quick"
pod 'Nimble', :git => "https://github.com/Quick/Nimble"
end
我还无法编写任何测试,因为我无法通过链接器错误。有什么想法吗?正如我在上面的评论中所说的,我想我遇到了相同或类似的问题:我的代码在运行时运行良好,但当我尝试运行测试时,我在尝试实例化引用cocoa pod中任何内容的对象时遇到了SEGFULT 11。我的案子已经解决了 出现错误时,我的播客文件如下所示: pod“反应可可” 目标“我的测试”是什么 使用你的框架 吊舱“快” 吊舱灵活 结束 使用你的框架!罪魁祸首是:因为使用_框架!仅应用于测试目标,我最终在为普通目标构建时静态链接到ReactiveCocoa,并在测试目标中动态链接到ReactiveCocoa。我丢失了一些只有在动态链接时才需要的ReactiveCocoa导入,而不是编译器告诉我它出错 我的播客文件现在如下所示: 使用你的框架 pod“反应可可” 目标“我的测试”是什么 吊舱“快” 吊舱灵活 结束
有一些链接问题需要解决,但从那里很容易,因为当我编译主目标时,我得到了一些正常的错误。希望这对某人有所帮助:)我觉得
Quick
和Nimble
的顺序应该是相反的,然后是跳过蜡烛棒
@James_andrew。你有没有想过?我遇到了完全相同的问题:我的代码运行良好,测试运行良好,只要我不实例化任何引用cocoa pod的东西:只要我引用cocoa pod,我就会在编译时得到SEGFULT 11。@Michellellis不幸的是,我的修复方法是创建一个全新的项目并重新添加我的所有文件。一旦我这样做了,我就可以用cocoapods代码再次进行测试。