Test commands
This page explains the types of test commands available in Antithesis. Test commands must be placed in test templates.
Many users choose to get started by taking an existing integration test and running it in Antithesis using a singleton driver command.
What’s a test command?
A test command is an executable file that exercises the system under test. It must:
- Live in a test template, e.g.
/opt/antithesis/test/v1/<test_template>/<prefix>_<command>. - Have a filename starting with a recognized
<prefix>. The<prefix>determines when and how the command runs.<command>can be any valid Unix filename, with any or no extension. - Be marked executable by the container’s default user.
- Be a compiled binary or have a shebang, e.g.
#!/usr/bin/env bash,#!/usr/bin/env python3if it’s a script.
If you’re using an existing script as a test command, you can simply put a symlink in the test directory.
ln /path/to/existingscript /opt/antithesis/test/v1/<test_name>/<prefix>_<command>Antithesis handles all selection and scheduling of test commands during a run.
Some test commands stop fault injection. See details under each command.
Types of test commands
Antithesis provides 7 types of test commands.
A test template must have at least one of the following test commands:
parallel_driversingleton_driverserial_driveranytime
Summary
| Command type | Prefix | Faults active? | Which commands can run alongside? |
|---|---|---|---|
| first | first_ |
No | None. |
| parallel_driver | parallel_driver_ |
Yes | One or more parallel_driver or anytime. |
| serial_driver | serial_driver_ |
Yes | One or more anytime. |
| singleton_driver | singleton_driver_ |
Yes | One or more anytime. |
| eventually | eventually_ |
No | Running anytimes will complete. |
| finally | finally_ |
No | Running anytimes will complete. |
| anytime | anytime_ |
Yes (during drivers) | Any except first. |
Here’s an illustration of how the various test commands could be scheduled during a test run.

Further reading
For a more detailed explanation of the concepts underpinning the test templates, see best practices for autonomous testing.
For guidance on how to test each of these commands locally before deploying to Antithesis, see checking test templates locally.
For an example of how to convert an existing integration test into a test template, check out this example, using Turso’s actual test setup.