我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
当前回答
XCode 12.6 测试版
我不确定是什么导致了这个问题,但清洁我的构建文件夹没有排序。重启XCode也没有解决这个问题。
对我有效的方法是删除这一行:import XCTest,然后重新输入它。
其他回答
对我来说,解决办法就是重新命名 导入myproject_ios 来 导入myproject 在我更新了目标myproject-ios的产品名称在构建设置/包装/产品名称/从${TARGET_NAME}到myproject。
CocoaPods推荐添加inherit!:search_paths到你的测试目标,就像这样:
target 'App' do
target 'AppTests' do
inherit! :search_paths
end
end
来源:https://github.com/CocoaPods/CocoaPods/pull/8423问题——244992565
我更改了项目的名称,因为我不希望应用程序的原始名称显示在应用程序商店中。这就需要对我的应用主机进行更改,这就需要对我所做的导入进行更改。
旧名:QRCodeTarot
新名字:尖帽塔罗牌
这是我在版本控制客户机中对主机所做的更改。
这意味着在我的测试中,我需要将导入的名称更改为应用程序的显示名称。因此,即使我的项目名为QRCodeTarot,我也需要将导入更改为显示名称。
我从导入qrcoderreader到导入Pointy_Hat_Tarot。
让项目名称与测试导入名称匹配的建议是错误的。
导入名称应与项目的显示名称匹配,而不是项目名称
确保在测试方案的构建设置下,测试目标在列表中。
在播放按钮旁边,选择测试方案,然后编辑方案…,转到Build部分,单击+ +并选择您想要测试的目标。
在我的例子中,我们有一个我们开发的内部目标(一些微小的差异),在合并之后,它被从测试配置中删除了。
正如在这个答案中所描述的,我正在将Swift测试添加到一个只使用Obj-C的项目中。解决方案是添加一个虚拟的Swift类,之后Xcode会提示添加一个桥接头,然后删除Swift类。从那以后一切都好了。