Files
leo-claude-mktplace/plugins/data-platform/commands/dbt-test.md
lmiranda b5d36865ee feat(plugins): add Visual Output headers to all other plugin commands
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>
2026-01-28 17:24:49 -05:00

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

  1. Pre-validation (MANDATORY):

    • Use dbt_parse to validate project first
    • If validation fails, show errors and STOP
  2. Execute tests:

    • Use dbt_test with provided selection
    • Capture all test results
  3. 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 values
  • not_null - No null values
  • accepted_values - Value in allowed list
  • relationships - 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