无法为XCTest加载基础模块

brd*_*uca 169 xcode xctest swift

我在swift上使用Xcode,默认情况下它会创建一个引用XCTest的测试文件.

当我将目标成员资格设置为我的主项目时,会导致此错误

无法为XCTest加载基础模块

如果未设置此目标成员资格,则测试运行正常,一切正常.

PS:我是swift的新手,这可能是一个愚蠢的问题(请赐教)

Aar*_*man 173

仔细检查相关文件是否不在主目标中,而是仅测试目标.只有测试目标才能导入该框架.

  • 如果它有帮助.选择"非测试"目标 - >构建阶段 - >编译源.确保您的"ClassTest.swift"不在正常的构建目标中. (16认同)

pwc*_*pwc 154

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

  1. 在Project Navigator中选择您的项目.这将在编辑器中打开项目的设置.
  2. 点击列出目标的列底部的"+"按钮.
  3. 如果您正在处理iOS项目模板,请选择iOS > Test > iOS Unit Testing Bundle.

    如果您正在使用OS X项目模板,请选择OS X > Test > OS X Unit Testing Bundle.

  • 同时对于iOS,它被称为iOS UITesting Bundle(用于UI测试)或iOS单元测试包(它用于单元测试...) (2认同)

Alf*_*she 31

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

解:

1)从主要目标的"构建阶段"选项卡上的"编译源"列表中删除测试文件

2)在测试目标的"Build Phases"选项卡上的"Compile Sources"中添加相同的文件

它必须解决这个问题


Sta*_*ich 9

如果创建链接到的macOS动态框架目标,则会收到此错误XCTest.framework(目标是框架目标,而不是测试目标!)。

在这种情况下,可以通过添加来解决问题

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks
Run Code Online (Sandbox Code Playgroud)

项目的“构建设置/框架搜索路径”。

  • 更好:$$(PLATFORM_DIR)/ Developer / Library / Frameworks`,如果您以不同的名称安装了多个版本的Xcode(例如发行版和Beta版)。 (3认同)

Orl*_*uez 7

经过大量的故障排除并在诸如此类的Stack Overflow页面附近跳动,我设法找到了一个其他iOS单元测试故障排除页面中未提及的细节。

如果您的项目使用CocoaPods,请确保将嵌套在主应用程序目标中的测试目标包括在内。如果您运行创建了测试目标,则podfile可能不包含该文件pod init。您的Podfile应该看起来像这样:

target 'YourApp' do
    target 'YourAppTests' do
        inherit! :search_paths
        # Pods for testing
    end
end
Run Code Online (Sandbox Code Playgroud)

记住要保存您的podfile,然后再运行pod install

希望能帮助到你!


小智 5

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

单击文件>新建>目标> iOS单元测试包.

然后在那里添加测试.这对我有用.问题是我在创建项目时没有选择创建单元测试.希望这有助于某人.