我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
我最近更新到Xcode 7 beta 5。我尝试在早期的项目中添加一个单元测试,但是我在@可测试的导入myModuleName行上得到了错误消息“没有这样的模块[myModuleName]”。
我试着
使用“选项清理生成文件夹”清理项目 检查“启用可测试性”(调试)在构建选项中设置为“是” 删除测试目标,然后重新添加iOS单元测试包
这些都不适用于这个项目(但是我已经在另一个项目中进行了测试)。有人遇到过这个问题并解决了吗?
当前回答
我的问题是,我想测试的类应该是在一个单独的模块(API客户端),但类实际上是应用程序目标的成员,而不是框架目标。改变类的目标成员使导入错误消失!
其他回答
一个需要注意的问题是,如果你的模块名中有一个破折号,那么你就必须用下划线来代替_。出于某种原因,我怀疑这可能是一个问题,这确实是我的问题。
如。@可测试import Ocean-Swift变成@可测试import Ocean_Swift
还有一件事,如果您确实使用@可测试语法,请确保在测试目标中不包含您的生产代码。我发现这会引起莫名的奇怪。
因此,在尝试了之前建议的所有解决方案后,这就是我如何让我的代码工作的。
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
一切都很顺利。希望这能有所帮助。
CocoaPods推荐添加inherit!:search_paths到你的测试目标,就像这样:
target 'App' do
target 'AppTests' do
inherit! :search_paths
end
end
来源:https://github.com/CocoaPods/CocoaPods/pull/8423问题——244992565
我的解决方案在这里。
首先单击OdeAlSwiftUITest.swift,然后在目标成员中检查项目TargetName。
我更改了项目的名称,因为我不希望应用程序的原始名称显示在应用程序商店中。这就需要对我的应用主机进行更改,这就需要对我所做的导入进行更改。
旧名:QRCodeTarot
新名字:尖帽塔罗牌
这是我在版本控制客户机中对主机所做的更改。
这意味着在我的测试中,我需要将导入的名称更改为应用程序的显示名称。因此,即使我的项目名为QRCodeTarot,我也需要将导入更改为显示名称。
我从导入qrcoderreader到导入Pointy_Hat_Tarot。
让项目名称与测试导入名称匹配的建议是错误的。
导入名称应与项目的显示名称匹配,而不是项目名称