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

我试着

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

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


当前回答

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

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

其他回答

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

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

因此,在尝试了之前建议的所有解决方案后,这就是我如何让我的代码工作的。

I set 'Enable testability' to 'YES' in project's Build Settings I also set 'Defines Module' to 'YES' in my project's Build Settings. For the regular .swift file(s) within my project, say MyApp, I was going to write test cases for, I have both the main "MyApp" and the "MyAppUnitTests" Targets checked under Target Membership. I then selected my unit test file(s), declared the '@testable import MyApp' at the top, beneath the 'import XCTest', and only checked the "MyAppUnitTests" under Target membership

一切都很顺利。希望这能有所帮助。

在项目导航器中单击MyAppTests.swift,然后单击右侧面板,在目标会员中检查模块。它在我的工作。

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

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

我遵循了上面的步骤,这是有效的。然而,我的项目有更多的问题。我得到了这个警告,我不能从我的主项目中访问类来测试我的测试目标。

我发现您的测试目标产品模块名称(YourTestTarget ->构建设置->搜索产品模块)不能与您的项目名称相同。

一旦我改变了我的测试目标的产品模块名称,一切都工作了。