我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。

我试着

使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包

这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?


当前回答

环境:Xcode Version 9.0 (9A235) 场景:测试一个开源框架。 我也遇到了同样的问题:“没有这样的模块”。 解决方案: 选择Test目标。 选择构建阶段 添加要be的框架 通过链接二进制测试… 下面是测试文件:

其他回答

正如在这个答案中所描述的,我正在将Swift测试添加到一个只使用Obj-C的项目中。解决方案是添加一个虚拟的Swift类,之后Xcode会提示添加一个桥接头,然后删除Swift类。从那以后一切都好了。

这里还有一件没有列出的事情需要检查。对我来说,这与我的团队有关,也许是因为我们团队的经纪人还没有同意最新的许可协议!一旦我在目标的一般设置中选择了一个不同的团队,然后我指定了一个特定的部署目标,比如12.1或11.0,突然“没有这样的模块”警告消失了。

我试了这里所有的答案,但红旗还是没有消失。但是我通过“运行”一个空测试让它工作了,并且它被清除了。

我想确保完成的事情:

主机应用程序 @可测试导入“Module_name”(确保模块名称正确) 确保测试的部署目标与项目相同 XCTest不需要Target成员资格

对我来说,问题是测试的iOS部署目标没有设置为与主目标相同。所以一定要检查这个。

在您的测试目标中:

Build Settings -> iOS Deployment Target -> iOS<same as the target you are testing>

如果你的项目中有一些目标- 检查你的目标模块名称,你试图导入@可测试导入"TARGETSModuleName"。

模块名应该在: 目标->构建设置->产品模块名称

例如: