Quantcast
Channel: User Chris W. Rea - Stack Overflow
Viewing all articles
Browse latest Browse all 42

How to set up working logic unit tests target in Xcode 4.5 "Command Line Tool" project?

$
0
0

Having trouble getting unit tests set up for a specific scenario. Here's what I'm trying:

  • In Xcode 4.5, I created a simple OSX "Command Line Tool" application project (Foundation).
    Note that Xcode does not provide the option to add unit tests to a "Command Line Tool" project automatically – so please don't suggest ticking the ticky-box; it ain't there :-/

  • In my project, I created a trivial example class that I'd like to test; e.g. "Shape".

  • I followed instructions in Apple's Xcode Unit Testing Guide for Setting Up Unit-Testing in a Project:

    • I added a unit test target to my project, and

    • I edited the "Test" scheme to run the tests in the new target.

  • In the test project's implementation (.m) file, I added an import for Shape.h and code in the setUp() method to instantiate a shape and assign it to an instance variable.

At that point, I decided to see if things would build and if the default test would run still. However, when I selected Product...Test from the menu, the build failed with the following error:

Undefined symbols for architecture x86_64:"_OBJC_CLASS_$_Shape", referenced from:      objc-class-ref in ExampleTests.old: symbol(s) not found for architecture x86_64clang: error: linker command failed with exit code 1 (use -v to see invocation)

Interpreting this error is not the issue. I grok that the unit test target isn't being linked to the binary containing Shape's implementation. However, I don't (yet) grok Xcode unit testing & target configuration. So:

What do I need to do in order to get the test target linking against the command line tool's resulting output? Can I link to a command-line executable from the unit test target? Apple's documentation looks specific to regular OSX applications (*.app) and iOS applications, and this is neither.

I have business logic classes that I'd like to develop in a command-line tool setting (to begin with), so I'd like to understand what I need to do to get a unit test target running in a "Command Line Tool" type of project. Thank you!

(p.s. Note that I'm not interested in running my unit tests from the command line – Stack Overflow already suggested "similar" questions on how to do that – but rather running unit tests on a "Command Line Tool" type project, and still from within Xcode.)


Viewing all articles
Browse latest Browse all 42

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>