Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run OCUnit logic tests automatically before each build (run) of iOS app in Xcode 4?

Tags:

ios

xcode4

ocunit

It seems that I have everything set up correctly. When I run command ⌘ + U (or select Product > Test from menu) my test runs fine.

Best practices should be that test are run as often as possible, ideally during each build (understand during each run).

How do I force Xcode 4 to do it? I have tried to:

  • set up a target dependency (put main app target to be dependent on test target)
  • enable a "test after build" in main app target build settings
  • tick also test target in scheme editor for run main app scheme

but nothing seems to work. Does anyone have success setting up this?

like image 560
Vilém Kurz Avatar asked Aug 08 '11 09:08

Vilém Kurz


1 Answers

Finally figured it out, though still not perfect:

  1. On your test target make sure set "Test after build" to yes.
  2. On your main app scheme - build - under "run" tick also test bundle.

This makes your test target build when running the app. Thanks to "Test after build" also the tests run. If everything is ok, app starts in sim. If there are any failing tests, you get a crash, if you use STAssert. In case of OCMock, you can check what exactly went wrong in log inspector.

Sometimes breakpoints do not work. To get them working try product - perform action - test without building.

like image 111
Vilém Kurz Avatar answered Nov 11 '22 08:11

Vilém Kurz