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

我试着

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

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


当前回答

我认为这可能是因为我删除了示例测试。

我删除了单元测试包,然后重新添加它,如下图所示,一切正常。

其他回答

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

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

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

我想确保完成的事情:

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

在构建设置测试目标中,检查主机测试,它接受PRODUCT_NAME中设置的名称。 您应该在测试类中使用这个名称。

我建议不要更改PRODUCT_NAME(匹配主目标的名称)

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

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

例如:

对于那些一直滚动到最后一个答案仍然没有工作的人,这里是我在遵循所有其他答案建议后所做的事情。我使用的是Xcode 11:

在我的情况下,导致问题的原因是我更改了我的产品名称

我在主目标的构建设置中将产品名称更改为“新名称” 我必须为测试目标重新选择主机应用程序 我不知道更改产品名称也会更改产品模块名称,这是我的测试文件中用于模块导入的名称。我修改了我的import如下: @可测试导入New_Name 它工作

我希望这对你们有帮助