添加Swift文件来testing目标没有修复unit testing

我看了很多博客,并尝试了很多东西,让我的Swiftunit testing在Xcode 6.0.1(或6.1)中工作。 我试图访问我的应用程序的目标中的类,所以我写了这一行:

var vc: LoginViewController! 

当然,我得到“使用未声明的types”LoginViewController'“错误。

然后我尝试将LoginViewController添加到我的testing目标,但是随后在我的项目中的其他类上出现“使用未parsing的标识符”错误。 所以我尝试将这些类添加到我的testing目标中,但是我最终得到了一个看似无穷无尽的错误来源,如下面的屏幕截图:

xcode的迅捷错误

宣布我所有的类都是公开的,导致其他的错误,似乎是不好的做法。 是否有任何依赖许多框架和类的Swift项目中包含unit testing? 我只是想从几乎完全像本文中的代码开始。

在经历了很多头痛之后,我发现主要的问题是向testing目标成员添加文件时,Objective-C类仍然会抱怨。 我认为这是一个旧的兼容性问题,用Swift进行unit testing的新方法,但解决scheme是我的testing目标不知道有一个桥接头 。 因此,我在testing目标的构build设置中添加了对其的引用,如下所示:

测试目标桥接头

现在看起来简单明了,但是这些错误是无益的。 我没有看到Swiftunit testing的其他解决scheme,这可能是一个问题,但现在我知道了。

文艺青年最爱的

要使unit testing在Swift中工作,testing目标必须知道应用目标知道的所有内容,因此也要在testing目标中添加对桥接头的引用(如果适用)。

我正在使用Xcode 6.1

您需要将swift文件添加到testing目标的target membership

在这里输入图像说明

如果您使用的是Xcode 7,现在有更好的方式来处理这个使用@testable import {ModuleName}

只要确保要testing的模块的构build设置Enable Testability设置为YES