子类XCTestCase导致无法加载底层模块XCTest

时间:2017-10-30 12:30:57

标签: ios swift xcode xctest

我正在编写用于测试目的的库。所以我需要在我的主要目标中的XCTest而不是我的单元测试目标。目前正在使用Xcode 9。

当我导入XCTest时,我收到错误"无法加载' XCTest'"。

我知道主要目标不是链接到框架,但将其添加到链接框架(必需)并不会改变任何内容。

我也查看了Quicks项目设置,但无法找到任何与众不同的东西。

我错过了什么?

3 个答案:

答案 0 :(得分:3)

这可能有点晚了,但你要做的是:

主项目未与XCUnit框架链接。您应该为项目创建单独的测试目标(如果尚不存在),并将测试源文件添加到该目标。

  1. 在Project Navigator中选择您的项目。这将在编辑器中打开项目的设置。
  2. 点击" +"列出目标的列底部的按钮。
  3. 如果您正在处理iOS项目模板,请选择
  4. 仔细检查相关文件是否不在主目标中,而是仅检查测试目标。只有测试目标才能导入该框架。

    确保在选择测试框架时检查所有模块的目标成员资格。您可以通过选择View-> Utilities-> Show File Inspector

    来查看Target Membership选项

    您刚刚将测试文件/类添加到主目标中,而不是错误地添加到测试目标中。就这么简单。

    <强>解决方案:

    1)从&#34;编译源&#34;中删除测试文件列表&#34;构建阶段&#34;主要目标的标签

    2)将相同的文件添加到&#34;编译源&#34;在&#34;建立阶段&#34;测试目标的选项卡必须解决问题

    这可能有点晚了但你要做的是:点击文件&gt;新&gt;目标&gt; iOS单元测试包。

    然后在那里添加测试。这对我有用。问题是我在创建项目时没有选择创建单元测试。

    希望这有助于某人。

答案 1 :(得分:1)

在构建设置的Framework Search Paths下,我必须添加:$(PLATFORM_DIR)/Developer/Library/Frameworks

然后一切都编好了:)

答案 2 :(得分:0)

一个想法是在每个测试目标中包含lib的源代码。

这不是理想的,可能不是你想到的,但是如果其他一切都失败了,这可能会有效,特别是如果你使用git子模块或git子树在测试目标之间共享lib的源代码。