# tuist test run

Tests a project

## Arguments

### scheme `Optional`

**Environment variable** `TUIST_TEST_SCHEME`

The scheme to be tested. By default it tests all the testable targets of the project in the current directory.

```bash
tuist test run [scheme]
```

### clean `Optional`

**Environment variable** `TUIST_TEST_CLEAN`

When passed, it cleans the project before testing it.

```bash
tuist test run --clean
tuist test run -c
```

### no-clean `Optional`

**Environment variable** `TUIST_TEST_CLEAN`

When passed, it cleans the project before testing it.

```bash
tuist test run --no-clean
```

### no-upload `Optional`

**Environment variable** `TUIST_TEST_NO_UPLOAD`

When passed, the result necessary for test selection is not persisted to the server.

```bash
tuist test run --no-upload
tuist test run -n
```

### no-no-upload `Optional`

**Environment variable** `TUIST_TEST_NO_UPLOAD`

When passed, the result necessary for test selection is not persisted to the server.

```bash
tuist test run --no-no-upload
```

### path `Optional`

**Environment variable** `TUIST_TEST_PATH`

The path to the directory that contains the project to be tested.

```bash
tuist test run --path [path]
tuist test run -p [path]
```

### device `Optional`

**Environment variable** `TUIST_TEST_DEVICE`

Test on a specific device.

```bash
tuist test run --device [device]
tuist test run -d [device]
```

### platform `Optional`

**Environment variable** `TUIST_TEST_PLATFORM`

Test on a specific platform.

```bash
tuist test run --platform [platform]
```

### os `Optional`

**Environment variable** `TUIST_TEST_OS`

Test with a specific version of the OS.

```bash
tuist test run --os [os]
tuist test run -o [os]
```

### rosetta `Optional`

**Environment variable** `TUIST_TEST_ROSETTA`

When passed, append arch=x86_64 to the 'destination' to run simulator in a Rosetta mode.

```bash
tuist test run --rosetta
```

### no-rosetta `Optional`

**Environment variable** `TUIST_TEST_ROSETTA`

When passed, append arch=x86_64 to the 'destination' to run simulator in a Rosetta mode.

```bash
tuist test run --no-rosetta
```

### configuration `Optional`

**Environment variable** `TUIST_TEST_CONFIGURATION`

The configuration to be used when testing the scheme.

```bash
tuist test run --configuration [configuration]
tuist test run -C [configuration]
```

### skip-ui-tests `Optional`

**Environment variable** `TUIST_TEST_SKIP_UITESTS`

When passed, it skips testing UI Tests targets.

```bash
tuist test run --skip-ui-tests
```

### no-skip-ui-tests `Optional`

**Environment variable** `TUIST_TEST_SKIP_UITESTS`

When passed, it skips testing UI Tests targets.

```bash
tuist test run --no-skip-ui-tests
```

### skip-unit-tests `Optional`

**Environment variable** `TUIST_TEST_SKIP_UNITTESTS`

When passed, it skips testing Unit Tests targets.

```bash
tuist test run --skip-unit-tests
```

### no-skip-unit-tests `Optional`

**Environment variable** `TUIST_TEST_SKIP_UNITTESTS`

When passed, it skips testing Unit Tests targets.

```bash
tuist test run --no-skip-unit-tests
```

### result-bundle-path `Optional`

**Environment variable** `TUIST_TEST_RESULT_BUNDLE_PATH`

Path where test result bundle will be saved.

```bash
tuist test run --result-bundle-path [result-bundle-path]
tuist test run -T [result-bundle-path]
```

### derived-data-path `Optional` `Deprecated`

**Environment variable** `TUIST_TEST_DERIVED_DATA_PATH`

Overrides the folder that should be used for derived data when testing a project.

```bash
tuist test run --derived-data-path [derived-data-path]
```

### retry-count `Optional` `Deprecated`

**Environment variable** `TUIST_TEST_RETRY_COUNT`

Tests will retry \<number\> of times until success. Example: if 1 is specified, the test will be retried at most once, hence it will run up to 2 times.

```bash
tuist test run --retry-count [retry-count]
```

### test-plan `Optional`

**Environment variable** `TUIST_TEST_TEST_PLAN`

The test plan to run.

```bash
tuist test run --test-plan [test-plan]
```

### test-targets `Optional`

**Environment variable** `TUIST_TEST_TEST_TARGETS`

The list of test identifiers you want to test. Expected format is TestTarget[/TestClass[/TestMethod]]. It is applied before --skip-testing

```bash
tuist test run --test-targets [test-targets]
```

### skip-test-targets `Optional`

**Environment variable** `TUIST_TEST_SKIP_TEST_TARGETS`

The list of test identifiers you want to skip testing. Expected format is TestTarget[/TestClass[/TestMethod]].

```bash
tuist test run --skip-test-targets [skip-test-targets]
```

### filter-configurations `Optional`

**Environment variable** `TUIST_TEST_CONFIGURATIONS`

The list of configurations you want to test. It is applied before --skip-configuration

```bash
tuist test run --filter-configurations [filter-configurations]
```

### skip-configurations `Optional`

**Environment variable** `TUIST_TEST_SKIP_CONFIGURATIONS`

The list of configurations you want to skip testing.

```bash
tuist test run --skip-configurations [skip-configurations]
```

### binary-cache `Optional`

**Environment variable** `TUIST_TEST_BINARY_CACHE`

Ignore binary cache and use sources only.

```bash
tuist test run --binary-cache
```

### no-binary-cache `Optional`

**Environment variable** `TUIST_TEST_BINARY_CACHE`

Ignore binary cache and use sources only.

```bash
tuist test run --no-binary-cache
```

### selective-testing `Optional`

**Environment variable** `TUIST_TEST_SELECTIVE_TESTING`

When --no-selective-testing is passed, tuist runs all tests without using selective testing.

```bash
tuist test run --selective-testing
```

### no-selective-testing `Optional`

**Environment variable** `TUIST_TEST_SELECTIVE_TESTING`

When --no-selective-testing is passed, tuist runs all tests without using selective testing.

```bash
tuist test run --no-selective-testing
```

### generate-only `Optional`

**Environment variable** `TUIST_TEST_GENERATE_ONLY`

When passed, it generates the project and skips testing. This is useful for debugging purposes.

```bash
tuist test run --generate-only
```

### no-generate-only `Optional`

**Environment variable** `TUIST_TEST_GENERATE_ONLY`

When passed, it generates the project and skips testing. This is useful for debugging purposes.

```bash
tuist test run --no-generate-only
```

### without-building `Optional`

**Environment variable** `TUIST_TEST_WITHOUT_BUILDING`

When passed, run the tests without building.

```bash
tuist test run --without-building
```

### no-without-building `Optional`

**Environment variable** `TUIST_TEST_WITHOUT_BUILDING`

When passed, run the tests without building.

```bash
tuist test run --no-without-building
```

### build-only `Optional`

**Environment variable** `TUIST_TEST_BUILD_ONLY`

When passed, build the tests, but don't run them

```bash
tuist test run --build-only
```

### no-build-only `Optional`

**Environment variable** `TUIST_TEST_BUILD_ONLY`

When passed, build the tests, but don't run them

```bash
tuist test run --no-build-only
```

### skip-quarantine `Optional`

**Environment variable** `TUIST_TEST_SKIP_QUARANTINE`

When passed, the quarantine feature is disabled and tests run regardless of whether they are quarantined on the server.

```bash
tuist test run --skip-quarantine
```

### no-skip-quarantine `Optional`

**Environment variable** `TUIST_TEST_SKIP_QUARANTINE`

When passed, the quarantine feature is disabled and tests run regardless of whether they are quarantined on the server.

```bash
tuist test run --no-skip-quarantine
```

### shard-max `Optional`

**Environment variable** `TUIST_TEST_SHARD_MAX`

Maximum number of shards to distribute tests across.

```bash
tuist test run --shard-max [shard-max]
```

### shard-min `Optional`

**Environment variable** `TUIST_TEST_SHARD_MIN`

Minimum number of shards.

```bash
tuist test run --shard-min [shard-min]
```

### shard-total `Optional`

**Environment variable** `TUIST_TEST_SHARD_TOTAL`

Exact number of shards (mutually exclusive with --shard-min/--shard-max). With suite granularity, the final shard is the catch-all.

```bash
tuist test run --shard-total [shard-total]
```

### shard-max-duration `Optional`

**Environment variable** `TUIST_TEST_SHARD_MAX_DURATION`

Target maximum duration per shard in milliseconds.

```bash
tuist test run --shard-max-duration [shard-max-duration]
```

### shard-granularity `Optional`

**Environment variable** `TUIST_TEST_SHARD_GRANULARITY`

Sharding granularity level: module (default) or suite.

```bash
tuist test run --shard-granularity [shard-granularity]
```

### shard-reference `Optional`

**Environment variable** `TUIST_SHARD_REFERENCE`

Explicit shard reference. Derived from environment variables for supported CI providers.

```bash
tuist test run --shard-reference [shard-reference]
```

### shard-skip-upload `Optional`

**Environment variable** `TUIST_TEST_SHARD_SKIP_UPLOAD`

Skip uploading test products to remote storage. Use when you provide test products to shard runners yourself, for example via shared volumes.

```bash
tuist test run --shard-skip-upload
```

### no-shard-skip-upload `Optional`

**Environment variable** `TUIST_TEST_SHARD_SKIP_UPLOAD`

Skip uploading test products to remote storage. Use when you provide test products to shard runners yourself, for example via shared volumes.

```bash
tuist test run --no-shard-skip-upload
```

### shard-archive-path `Optional`

**Environment variable** `TUIST_TEST_SHARD_ARCHIVE_PATH`

Path to a locally managed shard archive. In build-for-testing mode Tuist writes the optimized archive there; in shard execution mode Tuist extracts it instead of downloading test products from remote storage.

```bash
tuist test run --shard-archive-path [shard-archive-path]
```

### shard-index `Optional`

**Environment variable** `TUIST_SHARD_INDEX`

The zero-based shard index to execute.

```bash
tuist test run --shard-index [shard-index]
```

### inspect-mode `Optional`

**Environment variable** `TUIST_INSPECT_TEST_MODE`

Inspect mode: 'local' parses the xcresult on this machine, 'remote' uploads it for server-side processing, 'off' skips test analysis entirely (no xcresult parsing, archiving, or upload — the Tests dashboard is not populated). When omitted, defaults to 'remote' for tuist-hosted instances and 'local' for self-hosted ones.

```bash
tuist test run --inspect-mode [inspect-mode]
```

### passthrough-xcode-build-arguments `Optional`

Arguments that will be passed through to xcodebuild. Use -- followed by xcodebuild arguments. Example: tuist test -- -destination 'platform=iOS Simulator,name=iPhone 15' -parallel-testing-enabled YES

```bash
tuist test run [passthrough-xcode-build-arguments]
```
