Skip to main content

Test schemes

Context#

Whenever you don't want to run tests from Xcode, for whatever reason, you have to resort to xcodebuild. While being a fine piece of software, it's really hard to get all its arguments just right when you want to do something simple.

This is why we think we can do better - just by running tuist test we will run all test targets in your app. But not only that, we will automatically choose the right device for you - preferring the device you have already booted or choosing one with the correct iOS version and boot it for you. Easy!

Caching#

Tuist also automatically caches successful test runs - this means that the subsequent tuist test calls will test only what has changed! You will see which test targets are skipped in the log. This is extremely useful especially on CI - if you make a simple change in a module that other targets do not depend on, CI can test only this module and nothing else.

Command#

As we said, we strive for the test command being really simple - but it should be powerful enough to be useful for all your test-related wishes. Let's see it in more detail below.

Test the project in the current directory

tuist test

Test a specific scheme

tuist test MyScheme

Test on a specific device and OS version

tuist test --device "iPhone X" --os 14.0
Standard commands

One of the benefits of using Tuist over other automation tools is that developers can get familiar with a set of commands that they can use in any Tuist project.

Arguments#

ArgumentShortDescriptionDefaultRequired
--clean-cWhen passed, it cleans the project before testing it.FalseNo
--path-pThe path to the directory that contains the project to be tested.Current directoryNo
--device-dTest on a specific device.No
--os-oTest with a specific version of the OS.No
--configuration-CThe configuration to be used when building the scheme.No
--skip-ui-testsn/aWhen passed, it skips testing UI Tests targets.FalseNo
--result-bundle-path-TPath where test result bundle will be savedNo