Add single-line visual headers to 66 command files across 10 plugins: - clarity-assist (2 commands): 💬 - claude-config-maintainer (5 commands): ⚙️ - cmdb-assistant (11 commands): 🖥️ - code-sentinel (3 commands): 🔒 - contract-validator (5 commands): ✅ - data-platform (10 commands): 📊 - doc-guardian (5 commands): 📝 - git-flow (8 commands): 🔀 - pr-review (7 commands): 🔍 - viz-platform (10 commands): 🎨 Each command now displays a consistent header at execution start: ┌────────────────────────────────────────────────────────────────┐ │ [icon] PLUGIN-NAME · Command Description │ └────────────────────────────────────────────────────────────────┘ Addresses #275 (other plugin commands visual output) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
/dbt-test - Run dbt Tests
Visual Output
When executing this command, display the plugin header:
┌──────────────────────────────────────────────────────────────────┐
│ 📊 DATA-PLATFORM · dbt Tests │
└──────────────────────────────────────────────────────────────────┘
Then proceed with the tests.
Execute dbt tests with formatted pass/fail results.
Usage
/dbt-test [selection] [--warn-only]
Workflow
-
Pre-validation (MANDATORY):
- Use
dbt_parseto validate project first - If validation fails, show errors and STOP
- Use
-
Execute tests:
- Use
dbt_testwith provided selection - Capture all test results
- Use
-
Format results:
- Group by test type (schema vs. data)
- Show pass/fail status with counts
- Display failure details
Report Format
=== dbt Test Results ===
Project: my_project
Selection: tag:critical
--- Summary ---
Total: 24 tests
PASS: 22 (92%)
FAIL: 1 (4%)
WARN: 1 (4%)
SKIP: 0 (0%)
--- Schema Tests (18) ---
[PASS] unique_dim_customers_customer_id
[PASS] not_null_dim_customers_customer_id
[PASS] not_null_dim_customers_email
[PASS] accepted_values_dim_customers_status
[FAIL] relationships_fct_orders_customer_id
--- Data Tests (6) ---
[PASS] assert_positive_order_amounts
[PASS] assert_valid_dates
[WARN] assert_recent_orders (threshold: 7 days)
--- Failure Details ---
Test: relationships_fct_orders_customer_id
Type: schema (relationships)
Model: fct_orders
Message: 15 records failed referential integrity check
Query: SELECT * FROM fct_orders WHERE customer_id NOT IN (SELECT customer_id FROM dim_customers)
--- Warning Details ---
Test: assert_recent_orders
Type: data
Message: No orders in last 7 days (expected for dev environment)
Severity: warn
Selection Syntax
| Pattern | Meaning |
|---|---|
| (none) | Run all tests |
model_name |
Tests for specific model |
+model_name |
Tests for model and upstream |
tag:critical |
Tests with tag |
test_type:schema |
Only schema tests |
test_type:data |
Only data tests |
Options
| Flag | Description |
|---|---|
--warn-only |
Treat failures as warnings (don't fail CI) |
Examples
/dbt-test # Run all tests
/dbt-test dim_customers # Tests for specific model
/dbt-test tag:critical # Run critical tests only
/dbt-test +fct_orders # Test model and its upstream
Test Types
Schema Tests
Built-in tests defined in schema.yml:
unique- No duplicate valuesnot_null- No null valuesaccepted_values- Value in allowed listrelationships- Foreign key integrity
Data Tests
Custom SQL tests in tests/ directory:
- Return rows that fail the assertion
- Zero rows = pass, any rows = fail
Exit Codes
| Code | Meaning |
|---|---|
| 0 | All tests passed |
| 1 | One or more tests failed |
| 2 | dbt error (parse failure, etc.) |
Available Tools
Use these MCP tools:
dbt_parse- Pre-validation (ALWAYS RUN FIRST)dbt_test- Execute tests (REQUIRED)dbt_build- Alternative: run + test together