# Sanity Tests » integration-aliases

Each integration test must have an `aliases` file to control test execution.

If the tests cannot be run as part of CI (requires external services, unsupported dependencies, etc.), then they most likely belong in `test/integration/roles/` instead of `test/integration/targets/`. In that case, do not add an `aliases` file. Instead, just relocate the tests.

In some cases tests requiring external resources can be run as a part of CI. This is often true when those resources can be provided by a docker container.

However, if you think that the tests should be able to be supported by CI, please discuss test organization with @mattclay or @gundalow on GitHub or #ansible-devel on IRC.

If the tests can be run as part of CI, you’ll need to add an appropriate CI alias, such as:

- `posix/ci/group1`
- `windows/ci/group2`

The CI groups are used to balance tests across multiple jobs to minimize test run time. Using the relevant `group1` entry is fine in most cases. Groups can be changed later to redistribute tests.

Aliases can also be used to express test requirements:

- `needs/privileged`
- `needs/root`
- `needs/ssh`

Other aliases are used to skip tests under certain conditions:

- `skip/freebsd`
- `skip/osx`
- `skip/python3`

Take a look at existing `aliases` files to see what aliases are available and how they’re used.