Adding Swift files to test target not fixing unit tests Adding Swift files to test target not fixing unit tests swift swift

Adding Swift files to test target not fixing unit tests


After much headache and putting this on the back burner, I found that the main problem was when adding files to the test target membership, the Objective-C classes would still complain. I figured it was an old compatibility issue with the new way Swift does unit tests, but the solution was my test target didn't know there was a bridging header. Thus, I added a reference to it in my test target's build settings, like so:

test target bridging header

It seems simple and obvious now, but the errors were unhelpful. No other solutions I saw for Swift unit tests suggested this could be an issue, but now I know.

Tl;dr

For unit tests to work in Swift, the test target must know everything the app target knows, so add a reference to your bridging header in your test target too (if applicable).


If you're using Xcode 7, there's now a much better way of dealing with this using @testable import {ModuleName}.

Just make sure that the module you want to test has the build setting Enable Testability set to YES.


I am using Xcode 6.1

You need to add your swift file to the target membership of the test target

enter image description here