Skip to content

xcodebuild

To run tests selectively using xcodebuild, you can prepend your xcodebuild command with tuist – for example, tuist xcodebuild test -scheme App. The command hashes your project and on success, it persists the hashes to determine what has changed in future runs.

In future runs tuist xcodebuild test transparently uses the hashes to filter down the tests to run only the ones that have changed since the last successful test run.

For example, assuming the following dependency graph:

  • FeatureA has tests FeatureATests, and depends on Core
  • FeatureB has tests FeatureBTests, and depends on Core
  • Core has tests CoreTests

tuist xcodebuild test will behave as such:

ActionDescriptionInternal state
tuist xcodebuild test invocationRuns the tests in CoreTests, FeatureATests, and FeatureBTestsThe hashes of FeatureATests, FeatureBTests and CoreTests are persisted
FeatureA is updatedThe developer modifies the code of a targetSame as before
tuist xcodebuild test invocationRuns the tests in FeatureATests because it hash has changedThe new hash of FeatureATests is persisted
Core is updatedThe developer modifies the code of a targetSame as before
tuist xcodebuild test invocationRuns the tests in CoreTests, FeatureATests, and FeatureBTestsThe new hash of FeatureATests FeatureBTests, and CoreTests are persisted

To use tuist xcodebuild test on your CI, follow the instructions in the Continuous integration guide.

Released under the MIT License.