Guard::OCUnit automatically runs your OCUnit(SenTest) tests
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Guard::OCUnit Build Status

OCUnit guard allows to automatically launch tests when files are modified.

  • Compatible with XCode 4.x
  • Tested with XCode 4.5.


Please be sure to have Guard and ios-sim installed before continue. guard-ocunit uses ios-sim for running application tests from command line, for more info refer to the SO question.

  • Install the gem:
$ gem install guard-ocunit
  • Add guard definition to your Guardfile by running this command:
$ guard init ocunit
  • Enable Run in the Build section of your test bundle’s scheme.


Please read Guard usage doc


OCUnit guard can be adapted to your projects.

Standard Cocoapods project

guard :ocunit,
      :derived_data  => '/tmp/tests',
      :workspace     => 'SampleApp.xcworkspace',
      :scheme        => 'SampleApp',
      :test_bundle   => 'SampleAppTests' do

  watch(%r{^SampleApp/Models/(.+)\.[m,h]$}) { |m| "SampleAppTests/#{m[1]}Tests.m" }

Please read Guard doc for more information about the Guardfile DSL.


By default, Guard::OCUnit will only look for test files within Tests in your project root. You can configure Guard::OCUnit to look in additional paths by using the :test_paths option:

guard 'ocunit', :test_paths => ["Tests", "/Models/Tests"],:test_bundle => 'SampleAppTests' do
  # ...

List of available options:

:test_bundle  => '',            # test ocunit bundle with provided name, mandatory parameter
:derived_data => ''/tmp/tests/, # build into provided path, default: current folder
:workspace    => nil,           # build provided workspace, default: nil, use with :scheme
:scheme       => nil,           # build provided scheme, default: nil, use with :workspace
:project      => nil,           # path to the project to test, defaults to current folder
:sdk          => '',            # link and test against provided device sdk, default: 'iphonesimulator'
:verbose      => false          # dump all tests information in console
:notification => false          # display notification after the tests are done running, default: true
:all_after_pass => false        # run all tests after changed tests pass, default: true
:all_on_start => false          # run all tests at startup, default: true
:keep_failed  => false          # keep failed tests until they pass, default: true
:tests_paths  => ["Tests"]      # specify an array of paths that contain test files
:focus_on_failed => false       # focus on the first 10 failed tests first, rerun till they pass
:clean        => false          # defines all builds as clean. By default run all command doing clean build
:build_variables => ''          # passes provided parameters to the xcodebuild
:ios_sim_opts => ''             # passes provided options to the ios-sim