Back to Skills

test-generator

verified

Generates dbt tests including schema tests, data quality tests, and freshness checks. Use when adding tests to dbt models or implementing data quality validation.

View on GitHub

Marketplace

fastagent-marketplace

armanzeroeight/fastagent-plugins

Plugin

dbt-toolkit

Data Engineering

Repository

armanzeroeight/fastagent-plugins
20stars

plugins/dbt-toolkit/skills/test-generator/SKILL.md

Last Verified

January 21, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/armanzeroeight/fastagent-plugins/blob/main/plugins/dbt-toolkit/skills/test-generator/SKILL.md -a claude-code --skill test-generator

Installation paths:

Claude
.claude/skills/test-generator/
Powered by add-skill CLI

Instructions

# dbt Test Generator

## Quick Start

Generate comprehensive tests for dbt models including schema tests, data quality tests, and freshness checks.

## Instructions

### Step 1: Add schema tests

```yaml
# models/schema.yml
version: 2

models:
  - name: stg_orders
    description: Staging orders table
    columns:
      - name: order_id
        description: Unique order identifier
        tests:
          - unique
          - not_null
      
      - name: customer_id
        description: Customer reference
        tests:
          - not_null
          - relationships:
              to: ref('stg_customers')
              field: customer_id
      
      - name: order_status
        description: Order status
        tests:
          - accepted_values:
              values: ['pending', 'processing', 'shipped', 'delivered', 'cancelled']
      
      - name: order_total
        description: Total order amount
        tests:
          - not_null
          - dbt_utils.accepted_range:
              min_value: 0
```

### Step 2: Create custom data tests

```sql
-- tests/assert_positive_revenue.sql
select
    order_id,
    order_total
from {{ ref('fct_orders') }}
where order_total < 0
```

### Step 3: Configure freshness checks

```yaml
# models/sources.yml
version: 2

sources:
  - name: raw
    database: analytics
    schema: raw_data
    tables:
      - name: orders
        description: Raw orders data
        freshness:
          warn_after: {count: 12, period: hour}
          error_after: {count: 24, period: hour}
        loaded_at_field: created_at
```

### Step 4: Run tests

```bash
# Run all tests
dbt test

# Run tests for specific model
dbt test --select stg_orders

# Run specific test type
dbt test --select test_type:unique
dbt test --select test_type:not_null
```

## Test Types

**Schema tests:**
- unique
- not_null
- accepted_values
- relationships

**dbt_utils tests:**
- accepted_range
- at_least_one
- cardinality_equality
- equal_rowcount
- expression_is_true
- re

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
2118 chars