如何设置单元测试来测试添加到以前只有Objective-c项目的Swift类?
我已经将Swift类添加到我的项目中,并且能够在其他Swift和Objective-c文件中使用它们;但是,我无法从我的测试类中访问它们。
我认为正确的导入语句是@testable import MyAppModuleName
,这是添加到Xcode模板中的示例测试类的内容。该行产生的错误是Cannot import module being compiled
。使用Swift 2在Xcode 7中出现此错误。
答案 0 :(得分:5)
我在使用Objective-C和Swift代码库的工作区上工作时遇到了类似的问题,并希望为我的Swift文件编写单元测试用例。以下是我解决问题的步骤。
然后,我选择了我的单元测试文件,在“ import XCTest ”下面的顶部,“导入XCTest ”中声明了“ @testable import MyApp ”,并且仅选中目标成员资格下的“ MyAppUnitTests ”。 清洁,建造和运行,一切都像魅力。希望这会有所帮助。
答案 1 :(得分:3)
https://twitter.com/UINT_MIN提供的答案
在我的情况下,两个目标(应用程序和测试)在构建设置中具有相同的模块名称。更改测试目标的模块名称解决了问题。
答案 2 :(得分:1)
@testable import
适用于您尝试从测试目标中导入主模块中的代码时。您的测试代码不应该是您的应用目标的成员 - 您应该有一个单独的测试目标。有关详细信息,请参阅Using Unit Tests。