当前位置: 首页 > 知识库问答 >
问题:

将CocoaPods与iOS逻辑测试一起使用时未找到库

商宝
2023-03-14

我试图针对我的项目中使用podspec中一些库的功能的类编写一些iOS逻辑测试。我使用Xcode中提供的标准单元测试包(尽管不是应用程序测试,只是单元测试)。

例如,我使用Magic Record,并在我的podspec中链接了该库。它出现在我工作区的Pods项目中,当应用程序在模拟器或设备上运行时,它会按预期工作。然而,当我试图链接到使用Magic Record的测试对象时,我收到一个链接器错误,说明它无法从Magic Record中找到选择器。我尝试过在我的逻辑测试包中更新我的HEADER_SEARCH_路径,甚至将其硬编码到CocoaPods创建的headers目录,但没有成功。

我可以对不使用CocoaPods库的类运行单元测试,没有问题。

我做错了吗?我应该做些别的事情让编译器看到CocoaPods库吗?

共有3个答案

吉栋
2023-03-14

我在这里找到了一个解决方案,用CocoaPods进行单元测试:

在Xcode中打开项目文件,然后选择项目(而不是目标),在右侧面板中,有一个名为配置的部分。在“基于配置文件”列中选择测试目标的Pod。

葛宏爽
2023-03-14

通过查看我的应用程序的主要目标是如何从CocoaPods库接收设置,我发现了这一点。椰子荚包括一个。名为Pods的xcconfig文件。xcconfig。此文件包含所有标题搜索路径。

如果在“项目导航器”中查看项目并单击“信息”选项卡,您将在顶部看到列出的构建配置。如果你为你的不同配置打开“披露三角”,你会看到在你的主要目标下列出的吊舱。我必须单击下拉列表,并向逻辑测试目标添加pod。

我还必须将$(继承的)${PODS_HEADERS_SEARCH_PATHS}的设置从我的主目标复制到构建设置/HEADER_SEARCH_PATHS下的逻辑测试目标。

最后,我不得不添加libPods。在我的逻辑测试目标的链接二进制库构建阶段。

希望这能帮助别人。

夏弘文
2023-03-14

CocoaPods 1.0已经改变了它的语法。现在看起来是这样的:

def shared_pods
    pod 'SSKeychain', '~> 0.1.4'
    ...
end

target 'Sail' do
    shared_pods
end

target 'Sail-iOS' do
    shared_pods
end

CocoaPods 1.0之前的答案

你想使用的是链接_与你的播客文件中的。比如:

link_with 'MainTarget', 'MainTargetTests'

然后再次运行pod安装

 类似资料:
  • 问题内容: 我正在尝试使用Cocoapods库在Xcode 6 Beta-6中构建照片应用程序扩展。Xcode为照片扩展名创建的桥接标题无法从cocoapods中看到任何东西。 例如:导致错误。 我已经尝试了每种可能的导入路径(带有方括号和引号),但几乎没有成功。唯一的例外是,简单的豆荚一样,下面的丑陋可怕的黑客作品: 。 但是对于GPUImage,它会导入标头,并决定将其与不属于应用程序扩展的一

  • 我使用数据提供者方法和测试方法(测试方法中带有ITestContext参数)。一个简化的例子如下: 我的Retry类和RetryListener类如下: } 预期:当测试失败时,TestNG调用重试,然后数据提供程序应将相同的值返回给测试方法。 观察到:数据提供者返回相同的值,但测试方法没有运行,重试终止,下一个测试开始(数据提供者现在将返回新值) 但我的重试没有输入测试方法(测试方法不需要(in

  • 问题内容: 我在该领域做了一些谷歌搜索,发现了很多有关让Jenkins理解boost.test的XML输出格式的讨论,但是没有规范的参考。 有人说我们只需要使用XLST来转换XML格式,另一些人则认为XML在此之前需要进行一些修改有人拥有XSL来将Boost.TestXML日志转换为可显示的格式吗?)。有些人建议xUnit插件可以原生理解boost.test XML格式,另一些人则认为它不能 因为

  • 综述 在多功能的动态web应用程序中测试业务逻辑漏洞需要用非常规手段来思考。如果应用认证机制原先以1、2、3的步骤依次执行的验证身份目的来开发,万一用户从步骤1直接跳到步骤3会发生什么?用更加简单的例子来说,在打开失败、权限拒绝或仅仅500的错误的情况下,应用程序是否依然能够提供访问权限? 可以举出许多例子,但是不变的思想是“跳出常规思维”。这种类型的漏洞无法被漏洞扫描工具探测到,依赖于渗透测试人

  • 对于这种类型的错误,我在cocoapods中遵循了faq,似乎没有任何工作。任何帮助都很感激。 整个错误如下所示 Ld build/products/debug-iphonesimulator/komunety.app/komunety normal i386 cd/users/lawrenceflancbaum/dropbox/appledev/appdev/komunety export ip

  • 问题内容: 我希望能够使用Protractor测试我的Angular应用程序。由于我使用RequireJS,因此无法在DOM中使用指令,这就是为什么我使用手动引导Angular的原因。 量角器输出如下错误输出: 错误:在页面上找不到Angular :重试以寻找超出的角度 然后,我意识到量角器文档中有一个警告: 对于使用angular.bootstrap手动引导的应用,Protractor不能立即使