ma11hew28
ma11hew28

Reputation: 126507

OCUnit: How to run tests without launching iPhone simulator?

I'm following iOS Development Guide: Unit Testing Applications. However, when I attempt to build (Command+B) the LogicTests target (step 8 of "Setting Up Logic Testing"), I get the error: "The selected run destination is not valid for this action."

Since I added my application target to LogicTests's target dependencies, I'm able to run the unit tests with Command+U, but this also launches the iPhone Simulator.

To save time & resources, is it possible to run the OCUnit tests (both logic & application tests) without launching the iPhone Simulator?

Upvotes: 4

Views: 4525

Answers (4)

Rudolf Adamkovič
Rudolf Adamkovič

Reputation: 31486

Here's a small AppleScript that I set to run for Generates output in Testing behaviour configuration:

#!/usr/bin/osascript
activate application "Xcode"

It brings Xcode back immediately after pressing command + U.

P.S. I also opened a bug and Apple marked it as a duplicate. So, they're aware.

Upvotes: 2

MandyW
MandyW

Reputation: 1147

I've managed to run my unit tests which test my model classes without the simulator being launched as follows:

  1. I didn't set any bundle loader or test host build settings, instead I just added the .m files I was unit testing to the Build Phases Compile Sources.

  2. I then ran the unit tests from the command line using:

    xcodebuild -verbose -target TheElementsUnitTests -configuration Debug -sdk iphonesimulator5.0 clean build
    

Not really sure why this didn't launch the simulator, but it definitely didn't!

Upvotes: 4

markshiz
markshiz

Reputation: 2561

I understand the annoyance of the simulator popping up in unit tests. The best remedy I've been able to find is to do Command + U, followed by Command + H when launching unit tests. (Control + H hides the simulator after it appears.) Since it appears nearly instantaneously, this can be an effective way of getting it out of your range of vision.

Upvotes: 8

Jon Reid
Jon Reid

Reputation: 20980

How much time/resources? Rather than focusing on reducing those, I'd focus on expanding your tests to go far beyond Apple's original "Logic Test" guidelines. Those guidelines were limiting, and written before Xcode 4. Now you can write tests without thinking, "Is this a logic test or an application test?" -- just test everything.

Upvotes: 0

Related Questions