将Swift单元测试添加到混合语言Xcode项目中

Ant*_*tox 4 xcode unit-testing objective-c swift

如何设置单元测试来测试添加到以前只有Objective-c项目的Swift类?

我已经为我的项目添加了Swift类,并且能够在其他Swift和Objective-c文件中使用它们.但是,我无法从我的测试类中访问它们.

我认为正确的import语句是@testable import MyAppModuleNameXcode模板中添加到示例测试类的内容.该行产生的错误是Cannot import module being compiled.使用Swift 2在Xcode 7中出现此错误.

Vic*_*ift 5

我在使用Objective-C和Swift代码库的工作区上工作时遇到了类似的问题,并希望为我的Swift文件编写单元测试用例.以下是我解决问题的步骤.

  • 我在项目的Build Settings中将'enable testability'设置为'YES'
  • 我还在项目的Build Settings中将'Defines Module'设置为'YES'.
  • 对于我的项目中的常规.swift文件(S),说MyApp的,我打算写测试用例,我有两个主要的" MyApp的 "和" MyAppUnitTests "目标下的目标会员检查.

然后我选择了我的单元测试文件,在' import XCTest ' 下方的顶部声明了' @testable import MyApp ',并且检查了Target成员资格下的" MyAppUnitTests ".清洁,建造和运行,一切都像魅力.希望这可以帮助.


Ant*_*tox 4

答案由https://twitter.com/UINT_MIN提供

就我而言,两个目标(应用程序和测试)在构建设置中具有相同的模块名称。更改测试目标的模块名称解决了该问题。