Deployment tags
Deployment tags declare where a test suite is expected to run. Add them to every test.describe() (or apiTest.describe() / spaceTest.describe()), then use --grep when running tests to target a specific environment.
Tags follow this shape:
@<location>-<arch>-<domain>
Where:
- location:
localorcloud - arch:
statefulorserverless - domain:
classic,search,observability_complete,security_complete, …
Use the tags helper (see the full list below) to declare where your tests should run. By default, each helper expands to both @local-* and @cloud-* targets:
test.describe(
'My suite',
{ tag: [...tags.stateful.classic, ...tags.serverless.security.complete] },
() => {
// ...
}
);
This is equivalent to assigning all of these tags:
@local-stateful-*(local stateful)@cloud-stateful-*(Elastic Cloud)@local-serverless-security_complete(local serverless)@cloud-serverless-security_complete(Elastic Cloud)
To restrict a test to local environments only, write the tag strings explicitly:
test.describe(
'My suite',
{ tag: ['@local-stateful-classic', '@local-serverless-security_complete'] },
() => {
// ...
}
);
This test will only run locally (stateful classic and serverless Security complete tier), and will be skipped by Elastic Cloud pipelines.
Pick the narrowest scope that's still correct for the feature under test, as every extra deployment target spins up an additional run:
| The test covers… | Use |
|---|---|
| A platform feature that works everywhere | tags.deploymentAgnostic |
| A solution feature | tags.stateful.<solution> + tags.serverless.<solution> (use .complete when the solution has tiers) |
| Behavior specific to one serverless project tier | The explicit tier tag, e.g. tags.serverless.security.essentials or tags.serverless.observability.logs_essentials |
| Behavior that only exists on stateful | tags.stateful.<solution> alone |
Don't reach for tags.deploymentAgnostic from a solution module. It runs your test across every solution and is expensive — use explicit per-deployment tags instead. See the tags.deploymentAgnostic note.
Use this tag for platform specs that need to run across every standard deployment type. It expands to:
tags.stateful.alltags.serverless.searchtags.serverless.observability.completetags.serverless.security.complete
Workplace AI is excluded because it has no stateful counterpart.
tags.deploymentAgnostic runs your test across all solutions, which is expensive. If your test lives in a solution module, use explicit targets instead (e.g. [...tags.stateful.classic, ...tags.serverless.observability.complete]).
| Helper | Compatible with solution view |
|---|---|
tags.stateful.all |
All space solution views |
tags.stateful.classic |
Classic |
tags.stateful.search |
Elasticsearch |
tags.stateful.observability |
Observability |
tags.stateful.security |
Security |
The target solution view indicates the solution view the test is intended for, but is not enforced at test execution time. To set the solution view in a test, use scoutSpace.setSolutionView().
| Helper | What it targets |
|---|---|
tags.serverless.all |
All serverless targets |
| Helper | Project type |
|---|---|
tags.serverless.search |
Search |
| Helper | Project type |
|---|---|
tags.serverless.observability.all |
All Observability project tiers |
tags.serverless.observability.complete |
Observability (Complete) |
tags.serverless.observability.logs_essentials |
Observability (Logs Essentials) |
| Helper | Project type |
|---|---|
tags.serverless.security.all |
All Security project tiers |
tags.serverless.security.complete |
Security (Complete) |
tags.serverless.security.essentials |
Security (Essentials) |
tags.serverless.security.ease |
Security (EASE) |
| Helper | Project type |
|---|---|
tags.serverless.workplaceai |
Workplace AI |
Use tags.performance for performance tests. It assigns the @perf tag.
For the authoritative list (and the exact tag strings), see src/platform/packages/shared/kbn-scout/src/playwright/tags.ts or just rely on editor autocomplete.
Use tags to include suites where they make sense, instead of skipping suites after the fact.