0d3cb498a3
Deploy local.promptfoo.app / Deploy to Cloudflare Pages (push) Waiting to run
Test and Publish Multi-arch Docker Image / test (push) Waiting to run
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-amd64 platform:linux/amd64 runner:ubuntu-latest]) (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / build-docker-and-push-digests (map[digest-suffix:linux-arm64 platform:linux/arm64 runner:ubuntu-24.04-arm]) (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / merge-docker-digests (push) Blocked by required conditions
Test and Publish Multi-arch Docker Image / Attest Multi-arch Image (push) Blocked by required conditions
Validate Renovate Config / Validate Renovate Configuration (push) Waiting to run
CI / Shell Format Check (push) Has been cancelled
CI / Check Ruby (3.4) (push) Has been cancelled
CI / CI Config (push) Has been cancelled
CI / Test on Node ${{ matrix.node }} and ${{ matrix.os }}${{ matrix.shard && format(' (shard {0}/3)', matrix.shard) || '' }} (push) Has been cancelled
CI / Build on Node ${{ matrix.node }} (push) Has been cancelled
CI / Style Check (push) Has been cancelled
CI / Generate Assets (push) Has been cancelled
CI / Check Python (3.14) (push) Has been cancelled
CI / Check Python (3.9) (push) Has been cancelled
CI / Build Docs (push) Has been cancelled
CI / Code Scan Action (push) Has been cancelled
CI / Site tests (push) Has been cancelled
CI / webui tests (push) Has been cancelled
CI / Run Integration Tests (push) Has been cancelled
CI / Run Smoke Tests (push) Has been cancelled
CI / Go Tests (push) Has been cancelled
CI / Share Test (push) Has been cancelled
CI / Redteam (Production API) (push) Has been cancelled
CI / Redteam (Staging API) (push) Has been cancelled
CI / GitHub Actions Lint (push) Has been cancelled
CI / Check Ruby (3.0) (push) Has been cancelled
release-please / release-please (push) Has been cancelled
release-please / build (push) Has been cancelled
release-please / publish-npm (push) Has been cancelled
release-please / publish-npm-backfill (push) Has been cancelled
release-please / docker (push) Has been cancelled
release-please / publish-code-scan-action (push) Has been cancelled
release-please / attest-code-scan-action (push) Has been cancelled
83 lines
2.3 KiB
Markdown
83 lines
2.3 KiB
Markdown
# config-external-defaulttest (External Default Test Configuration)
|
|
|
|
This example demonstrates how to use the `file://` syntax to load `defaultTest` configuration from an external file.
|
|
|
|
You can run this example with:
|
|
|
|
```bash
|
|
npx promptfoo@latest init --example config-external-defaulttest
|
|
cd config-external-defaulttest
|
|
```
|
|
|
|
## Overview
|
|
|
|
Instead of defining `defaultTest` inline in your main configuration file, you can reference an external YAML or JSON file. This is useful for:
|
|
|
|
- Sharing common test configurations across multiple projects
|
|
- Keeping your main config file cleaner and more focused
|
|
- Managing complex test configurations separately
|
|
- Version controlling shared test configurations independently
|
|
|
|
## Structure
|
|
|
|
```text
|
|
external-defaulttest/
|
|
├── promptfooconfig.yaml # Main configuration file
|
|
├── shared/
|
|
│ └── defaultTest.yaml # Shared default test configuration
|
|
└── README.md # This file
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Inline defaultTest (traditional approach)
|
|
|
|
```yaml
|
|
# Traditional inline approach
|
|
defaultTest:
|
|
assert:
|
|
- type: cost
|
|
threshold: 0.01
|
|
- type: latency
|
|
threshold: 5000
|
|
options:
|
|
provider: openai:o4-mini
|
|
```
|
|
|
|
### External defaultTest (new approach)
|
|
|
|
```yaml
|
|
# New external file approach
|
|
defaultTest: file://shared/defaultTest.yaml
|
|
```
|
|
|
|
The external file (`shared/defaultTest.yaml`) contains the same configuration that would normally be inline.
|
|
|
|
## Benefits
|
|
|
|
1. **Reusability**: Share the same defaultTest configuration across multiple prompt configurations
|
|
2. **Maintainability**: Update test defaults in one place
|
|
3. **Organization**: Keep complex test configurations separate from your main config
|
|
4. **Collaboration**: Teams can maintain shared test standards in a central location
|
|
|
|
## Running the Example
|
|
|
|
```bash
|
|
cd examples/config-external-defaulttest
|
|
npx promptfoo@latest eval
|
|
```
|
|
|
|
The external defaultTest configuration will be loaded automatically and applied to all test cases that don't override the defaults.
|
|
|
|
## Advanced Usage
|
|
|
|
You can also reference defaultTest files from parent directories or absolute paths:
|
|
|
|
```yaml
|
|
# Reference from parent directory
|
|
defaultTest: file://../shared-configs/defaultTest.yaml
|
|
|
|
# Reference from project root
|
|
defaultTest: file://configs/testing/defaultTest.yaml
|
|
```
|