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

我试着

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

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


当前回答

如果您正在使用xcodebuild并发现此问题,请考虑在build命令中添加一个工作区标志。

改变这一

$ xcodebuild -scheme PowToonsTests -destination 'name=iPhone X' test

这个

$ xcodebuild -workspace PowToons.xcworkspace -scheme PowToonsTests -destination 'name=iPhone X' test

其他回答

这是我在Xcode 13.1中使用的方法:

在Xcode Preferences > Locations的Locations选项卡中,我定义了一个自定义位置:

这不仅导致单元测试失败,出现可怕的“没有这样的模块”错误,而且还导致“命令CodeSign失败,退出码非零”和其他警告和错误。

将设置更改为唯一:

解决了所有问题。

我的问题是,我想测试的类应该是在一个单独的模块(API客户端),但类实际上是应用程序目标的成员,而不是框架目标。改变类的目标成员使导入错误消失!

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

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

例如:

在这个问题上花了几天时间后,我终于开始着手我的项目。问题出现在桥接标头-如果您在主目标中使用桥接标头,则测试目标中的路径不能为空

希望能为别人节省点时间。

这听起来是一个错误的构建设置的两个目标。 你需要确保:

对于两个目标,enable_teststability等于Yes。 测试目标的PRODUCT_MODULE_NAME值应该与应用程序的值不同。