| name | dart-test |
| description | DART Test: unit tests, integration tests, CI validation, and debugging |
DART Testing
Load this skill when writing or debugging tests.
Quick Commands
pixi run test
pixi run test-all
pixi run -e cuda test-all
pixi run test-unit
pixi run test-py
Full Documentation
For complete testing guide: docs/onboarding/testing.md
For CI/CD troubleshooting: docs/onboarding/ci-cd.md
Test Organization
- Unit tests:
tests/unit/
- Integration tests:
tests/integration/
- Regression tests: Near the code they test
Writing Tests
- Follow existing patterns in the test directory
- Use GoogleTest framework
- Name tests descriptively:
TEST(ClassName, MethodName_Condition_ExpectedResult)
CI Validation
Before submitting PR:
pixi run lint
pixi run test-all
pixi run -e cuda test-all
Debugging Test Failures
pixi run test-unit
gh run view <RUN_ID> --log-failed
Simulation And Visual End-to-End Checks
When a failure or change depends on scene structure, dynamics,
collision/contact, simulation stepping, GUI output, or a visual example, also
load dart-verify-sim. Use its text-first oracle and then an assessed headless
capture with claim-relevant debug layers. Record a concrete no-visual reason
only when that corroboration is unavailable or not applicable.
Gotchas
pixi run build builds libraries only, NOT the unit-test binaries. If you run
ctest without building the test target first, you may execute stale binaries
that silently pass. Build the test target before running its label, e.g. for
the simulation suite: pixi run build-simulation-tests (target
dart_simulation_tests) before ctest -L simulation.
pixi run test-all is the default-environment full gate. On Linux hosts with
a visible NVIDIA CUDA runtime, also run pixi run -e cuda test-all; the CUDA
run preserves the cuda Pixi environment and executes the CUDA CTest +
benchmark smoke path when the runtime is detected.
- The CUDA Pixi config auto-detects visible GPU compute capabilities for
DART_CUDA_ARCHITECTURES; unsupported PTX/toolchain errors usually mean the
generated CUDA architecture flags need to be checked before blaming test code.