我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
当前回答
尝试了所有的解决方案。毫无效果。Xcode构建命令行在swift包模块未发现错误时失败。
错误:没有阿波罗模块 进口阿波罗
删除测试目标并重新添加它们对我来说是有效的。
其他回答
这是我在Xcode 13.1中使用的方法:
在Xcode Preferences > Locations的Locations选项卡中,我定义了一个自定义位置:
这不仅导致单元测试失败,出现可怕的“没有这样的模块”错误,而且还导致“命令CodeSign失败,退出码非零”和其他警告和错误。
将设置更改为唯一:
解决了所有问题。
请检查您尝试导入的模块名@可测试导入“ModuleName”。模块名称与“目标->构建设置->产品模块名称”保持一致
我试了这里所有的答案,但红旗还是没有消失。但是我通过“运行”一个空测试让它工作了,并且它被清除了。
我想确保完成的事情:
主机应用程序 @可测试导入“Module_name”(确保模块名称正确) 确保测试的部署目标与项目相同 XCTest不需要Target成员资格
因此,在尝试了之前建议的所有解决方案后,这就是我如何让我的代码工作的。
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
一切都很顺利。希望这能有所帮助。
一个需要注意的问题是,如果你的模块名中有一个破折号,那么你就必须用下划线来代替_。出于某种原因,我怀疑这可能是一个问题,这确实是我的问题。
如。@可测试import Ocean-Swift变成@可测试import Ocean_Swift
还有一件事,如果您确实使用@可测试语法,请确保在测试目标中不包含您的生产代码。我发现这会引起莫名的奇怪。