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

我试着

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

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


当前回答

对我来说,解决办法就是重新命名 导入myproject_ios 来 导入myproject 在我更新了目标myproject-ios的产品名称在构建设置/包装/产品名称/从${TARGET_NAME}到myproject。

其他回答

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

改变这一

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

这个

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

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

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

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

XCode 12.6 测试版

我不确定是什么导致了这个问题,但清洁我的构建文件夹没有排序。重启XCode也没有解决这个问题。

对我有效的方法是删除这一行:import XCTest,然后重新输入它。

请检查您尝试导入的模块名@可测试导入“ModuleName”。模块名称与“目标->构建设置->产品模块名称”保持一致

除了列出的其他事情之外,我还必须将我试图测试的类的文件添加到单元测试模块的编译源中