iOS单元测试问题小结

作者: 微微笑的蜗牛 | 来源:发表于2018-04-19 18:43 被阅读16次

    在写unit test的过程中遇到一些问题,记录一下。

    xx.h file not found

    • 如果是给pod lib create创建的库写单元测试,检查Podfile中tests target有无如下配置。这样cocoapods会给test target设置search path。
       target 'xxTests' do
           inherit! :search_paths
        end
    

    pod install之后,会发现Pods/Targets Support Files下面多了个Pods-xxx_Tests的文件夹,.xcconfig文件中配置了搜索路径。

    • 如果不是,需要在tests target的build setting中设置header search path

    symbols not found

    1. 切到tests target的build settings,设置BUNDLE_LOADER=$(TEST_HOST),设置TEST_HOST= $(BUILT_PRODUCTS_DIR)/xx.app/xx (xx为host target名称)

    2. 切到host target的build settings,选择Symbols hidden by default为NO。

    还有一种情况,如果podfile中是以use_framework的方式(即动态库),那么在引入头文件时需要使用<xx/xx.h>,不然也会报symbol not found。

    Library not loaded

    在9.x的系统上发现会报错Library not loaded

    Library not loaded: 
    /System/Library/Frameworks/CallKit.framework/CallKit
    

    test targetbuild phase -> link binary with library, 添加callkit,选择optional即可。

    跑真机

    真机跑单元测试需要选择证书,确保host target和test target的证书一致。

    Unable to connect to test manager

    重启手机后解决。

    相关文章

      网友评论

        本文标题:iOS单元测试问题小结

        本文链接:https://www.haomeiwen.com/subject/bycgkftx.html