| name | testing-procedures |
| description | Testing procedures for Kalahari project. Use for running tests and analyzing results. |
Testing Procedures
1. Build Commands
Windows
scripts/build_windows.bat Debug
Linux
scripts/build_linux.sh
NEVER
- Run cmake directly
- Use WSL for Windows builds
2. Test Execution
Windows
./build-windows/bin/kalahari-tests.exe
Linux
./build-linux/bin/kalahari-tests
3. Test Framework
- Framework: Catch2 v3
- Style: BDD (Behavior-Driven Development)
- Location:
tests/
4. Result Interpretation
Output format
[PASS] TestName
[FAIL] TestName - expected X, got Y
Summary
===============================================
All tests passed (42 assertions in 15 test cases)
or
===============================================
test cases: 15 | 14 passed | 1 failed
assertions: 42 | 40 passed | 2 failed
5. What to Check
After implementation
- All existing tests still pass?
- No regressions (previously passing tests)?
- New tests added for new functionality?
Test coverage
- Core business logic tested?
- Edge cases covered?
- Error handling tested?
6. Manual Testing
When needed
- UI changes (visual verification)
- User interaction flows
- Theme switching
- Panel resizing/docking
Steps
- Run application:
./build-windows/bin/kalahari.exe - Test the specific feature
- Verify visual appearance
- Check responsiveness
7. Reporting Results
Pass
{
"decision": "pass",
"tests": "42/42 passed",
"summary": "All tests pass"
}
Fail
{
"decision": "fail",
"tests": "40/42 passed",
"failures": [
"TestSettings::save - expected true, got false",
"TestDocument::load - file not found"
],
"summary": "2 tests failed"
}
8. Common Issues
Build fails
- Check CMake output for errors
- Verify vcpkg dependencies
- Check for missing includes
Tests fail
- Read failure message carefully
- Check if test assumptions still valid
- Verify test data/fixtures
Flaky tests
- Check for timing dependencies
- Look for shared state between tests
- Verify test isolation