Test
Tuist projects can declare test targets that run tests for the project. Traditionally, teams execute them using Xcode's GUI, the xcodebuild
command-line tool, or higher-level abstraction tools like Fastlane Scan. Tuist provides a command, tuist test
to generate the project if needed, and then run the tests with the xcodebuild
command-line tool.
Why Tuist over xcodebuild
You might wonder what's the value of using tuist test
over generating the project with tuist generate
and running the tests with raw xcodebuild
.
- Single command:
tuist test
ensures the project is generated if needed before compiling the project. - Beautified output: Tuist enriches the
xcodebuild
output using xcbeautify - Selective testing: If you are using Tuist Cloud, Tuist can selectively run tests based on previous runs.
Tuist Cloud Test coming
Test flakiness is a tremendous source of frustration for developers and loss of productivity. Therefore, we are working on a set of features that will allow preventing, detecting, and fixing flaky tests. This will require the usage of tuist test
, so if you are not using it yet, we recommend you start using it.
Running scheme tests
To run the tests of a project, you can use the tuist test
command. This command will generate the project if needed, and then run the tests using the xcodebuild
command-line tool.
tuist test MyScheme
tuist test --no-binary-cache
tuist test --no-selective-testing
XCODEBUILD ARGUMENT FORWARDING
We don't support forwarding arbitrary arguments to xcodebuild
yet. If you need to pass arguments to xcodebuild
, you can use the --verbose
flag to see the command that Tuist is running, and then run it manually with the arguments you need.