1.3 KiB
1.3 KiB
Test Suite
Purpose
Integration and performance tests for dagx. Unit tests live in src/{module}/tests.rs.
Running Tests
# All tests (unit + integration)
cargo test
# Unit tests only
cargo test --lib
# Integration tests only
cargo test --test lib_tests
# Specific category
cargo test --test lib_tests -- parallelism::
cargo test --test lib_tests -- execution::
# With output
cargo test -- --nocapture
# Single threaded (for debugging)
cargo test -- --test-threads=1
# Performance tests (excluded by default)
cargo test --release -- --ignored
Test Categories
Unit Tests (src/{module}/tests.rs)
- Module-specific logic
- Edge cases and error conditions
- Type implementations
Integration Tests (tests/)
- boundaries: Edge cases (very large/very small graphs)
- dependencies: Complex dependency graphs
- errors: Error handling
- execution: End-to-end DAG execution
- interleaving: Layer interleaving patterns
- parallelism: Concurrent task execution
- runtimes: Tokio, smol compatibility
- tracing: Execution observability
Writing Tests
Unit tests should:
- Test single units of functionality
- Mock external dependencies
- Cover error cases
Integration tests should:
- Test component interactions
- Use real implementations
- Verify end-to-end behavior