我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
当前回答
也可以是:
没有为您的测试目标设置托管应用程序(在general选项卡或TEST_HOST构建设置中) 在构建阶段缺少测试目标的应用程序依赖项。
其他回答
这个答案对我很管用
答案是我的项目中出现了一些错误,导致构建失败。(这只是代码中标准的日常错误。)在我修复了错误并进行了另一次清理和构建后,它工作了。
请注意,这些错误一开始并没有出现。为了让他们出现:
注释掉给出“No such module”错误的整个Test文件。 试着重新运行你的项目。
如果还有其他错误,现在就应该显示出来。修复它们,然后取消测试文件代码的注释。对我来说,“没有这样的模块”错误已经消失了。
如果这不能解决其他人的问题,你也可以尝试以下方法:
清理构建文件夹
打开“产品”菜单,按住“选项”,然后单击“清洁构建文件夹…”
确保启用可测试性设置为Yes
在项目导航器中单击项目名称。选择生成设置并向下滚动到生成选项。确保“启用可测试性”为“是”(用于调试)。
删除并重新添加测试目标
如果你已经做了其他的事情,我猜你可能不需要做这个。但是如果你这样做了,记得保存你已经写好的单元测试。
在project Navigator中单击项目名称。然后选择测试目标。点击底部的减号(-)按钮删除。
然后点击加号(+)按钮,选择iOS单元测试包再次添加它。正如您所看到的,您还可以以相同的方式添加一个UI Testing Bundle。
还有其他一些想法
确保所有必需的类都是测试目标的成员。 确保您已经添加了所有必需的库。 确保模块名称写得正确(参见这个答案)。
还是……
如果你发现了其他有用的方法,请在下方留言或回答。
相关的
如何在Xcode中进行单元测试 Xcode UI测试示例
请检查您尝试导入的模块名@可测试导入“ModuleName”。模块名称与“目标->构建设置->产品模块名称”保持一致
我更改了项目的名称,因为我不希望应用程序的原始名称显示在应用程序商店中。这就需要对我的应用主机进行更改,这就需要对我所做的导入进行更改。
旧名:QRCodeTarot
新名字:尖帽塔罗牌
这是我在版本控制客户机中对主机所做的更改。
这意味着在我的测试中,我需要将导入的名称更改为应用程序的显示名称。因此,即使我的项目名为QRCodeTarot,我也需要将导入更改为显示名称。
我从导入qrcoderreader到导入Pointy_Hat_Tarot。
让项目名称与测试导入名称匹配的建议是错误的。
导入名称应与项目的显示名称匹配,而不是项目名称
如果您正在使用xcodebuild并发现此问题,请考虑在build命令中添加一个工作区标志。
改变这一
$ xcodebuild -scheme PowToonsTests -destination 'name=iPhone X' test
这个
$ xcodebuild -workspace PowToons.xcworkspace -scheme PowToonsTests -destination 'name=iPhone X' test
这里还有一件没有列出的事情需要检查。对我来说,这与我的团队有关,也许是因为我们团队的经纪人还没有同意最新的许可协议!一旦我在目标的一般设置中选择了一个不同的团队,然后我指定了一个特定的部署目标,比如12.1或11.0,突然“没有这样的模块”警告消失了。