Test Groups
Groups allow batch execution of multiple test profiles across different test types.
Overview
Run multiple test profiles with one command:
{
"groups": {
"pre-release": {
"e2e": ["smoke", "full"],
"security": ["scan"],
"phpstan": ["strict"]
}
}
}
Run all:
qit run:group pre-release
Group Structure
Groups map test types to profile arrays:
{
"groups": {
"group-name": {
"test-type": ["profile1", "profile2"],
"another-type": ["profile3"]
}
}
}
Naming Rules:
- Group names, test type names, and profile names must use only alphanumeric, hyphens (
-), underscores (_) - No spaces or special characters
- See Validation Rules
Common Group Patterns
CI Pipeline Groups
{
"groups": {
"ci-quick": {
"e2e": ["smoke"]
},
"ci-full": {
"e2e": ["smoke", "full", "compatibility"],
"security": ["scan"],
"phpstan": ["analysis"]
}
}
}
Release Groups
{
"groups": {
"alpha": {
"e2e": ["smoke"]
},
"beta": {
"e2e": ["smoke", "full"],
"security": ["scan"]
},
"release": {
"e2e": ["smoke", "full", "compatibility"],
"security": ["scan"],
"phpstan": ["strict"],
"phpcompatibility": ["check"]
}
}
}
Using Groups
Run a Group
qit run:group pre-release
Run Specific Test Type in Group
qit run:group pre-release --only=e2e
Best Practices
- Use descriptive group names
- Group related test profiles
- Document group purposes
- Keep groups maintainable
CLI Usage
Run a group of tests defined in qit.json
run:group [options] [--] <group>
Arguments:
group Group name from qit.json
--only=ONLY Run only specific test type (e.g., e2e, security)
--async|--no-async Run tests asynchronously (default: true)
--wait|--no-wait Wait for all tests to complete (overrides --async)
-i, --group-identifier[=GROUP-IDENTIFIER] Identifier for this group run (auto-generated if not provided)
Related Topics
- Test Profiles - Individual test configurations
- qit.json Structure - Complete configuration