Files
onvif-go/TEST_QUICKSTART.md
T
ProtoTess 3bf078ed3f Add camera test framework and initial tests for Bosch FLEXIDOME indoor 5100i IR
- Introduced a new directory `testdata/captures/` containing captured XML archives and README documentation for the camera test framework.
- Added a mock server implementation to replay captured SOAP responses for testing.
- Created automated tests for Bosch FLEXIDOME indoor 5100i IR using captured responses, validating device information, system date and time, capabilities, and profiles.
- Implemented enhanced device features tests, covering hostname, DNS, NTP, network interfaces, scopes, and user management.
- Added support for enhanced media and imaging features, including video and audio sources, and imaging options.
- Updated types to include new configurations and options for network, imaging, and device capabilities.
2025-11-11 02:10:04 +00:00

117 lines
3.2 KiB
Markdown

# Quick Test Reference
## Running Camera Tests
### Option 1: Using the test script (Recommended)
```bash
# Set credentials
export ONVIF_TEST_ENDPOINT="http://192.168.1.201/onvif/device_service"
export ONVIF_TEST_USERNAME="service"
export ONVIF_TEST_PASSWORD="Service.1234"
# Run all Bosch FLEXIDOME tests
./run-camera-tests.sh
# Run specific test
./run-camera-tests.sh TestBoschFLEXIDOMEIndoor5100iIR_GetDeviceInformation
```
### Option 2: Direct go test commands
```bash
# Run all camera tests
go test -v -run TestBoschFLEXIDOMEIndoor5100iIR
# Run specific test
go test -v -run TestBoschFLEXIDOMEIndoor5100iIR_GetStreamURI
# Run with race detection
go test -v -race -run TestBoschFLEXIDOMEIndoor5100iIR
# Run benchmarks
go test -v -bench=BenchmarkBoschFLEXIDOMEIndoor5100iIR -benchmem
```
### Option 3: One-liner with credentials
```bash
ONVIF_TEST_ENDPOINT="http://192.168.1.201/onvif/device_service" \
ONVIF_TEST_USERNAME="service" \
ONVIF_TEST_PASSWORD="Service.1234" \
go test -v -run TestBoschFLEXIDOMEIndoor5100iIR
```
## Test List
### Device Tests
- `TestBoschFLEXIDOMEIndoor5100iIR_GetDeviceInformation` - Device info retrieval
- `TestBoschFLEXIDOMEIndoor5100iIR_GetSystemDateAndTime` - System time
- `TestBoschFLEXIDOMEIndoor5100iIR_GetCapabilities` - Capability discovery
### Media Tests
- `TestBoschFLEXIDOMEIndoor5100iIR_GetProfiles` - Media profiles (4 expected)
- `TestBoschFLEXIDOMEIndoor5100iIR_GetStreamURI` - RTSP stream URIs
- `TestBoschFLEXIDOMEIndoor5100iIR_GetSnapshotURI` - Snapshot URLs
- `TestBoschFLEXIDOMEIndoor5100iIR_GetVideoEncoderConfiguration` - Encoder settings
### Imaging Tests
- `TestBoschFLEXIDOMEIndoor5100iIR_GetImagingSettings` - Camera imaging parameters
### Integration Tests
- `TestBoschFLEXIDOMEIndoor5100iIR_Initialize` - Service discovery
- `TestBoschFLEXIDOMEIndoor5100iIR_FullWorkflow` - Complete operation sequence
### Performance Tests
- `BenchmarkBoschFLEXIDOMEIndoor5100iIR_GetDeviceInformation` - Device info benchmark
- `BenchmarkBoschFLEXIDOMEIndoor5100iIR_GetStreamURI` - Stream URI benchmark
## Expected Test Results
All tests should **PASS** with the following outputs:
```
✓ Manufacturer: Bosch
✓ Model: FLEXIDOME indoor 5100i IR
✓ 4 Profiles found (1920x1080, 1536x864, 1280x720, 512x288)
✓ All profiles have RTSP stream URIs
✓ Snapshot URI available
✓ Video encoding: H264 @ 30fps, 5200kbps
✓ Default imaging: Brightness 128.0, Saturation 128.0, Contrast 128.0
```
## Troubleshooting
### Tests are skipped
**Solution**: Set environment variables with camera credentials
### Connection timeout
**Solutions**:
- Verify camera IP address
- Check network connectivity
- Ensure firewall allows connection
### Authentication failed
**Solutions**:
- Verify username and password
- Check user permissions on camera
### Unexpected values
**Note**: Camera settings may differ based on:
- Firmware version
- Manual configuration changes
- Update test expectations if needed
## Coverage Report
Generate test coverage:
```bash
go test -coverprofile=coverage.out -run TestBoschFLEXIDOMEIndoor5100iIR
go tool cover -html=coverage.out
```
## Adding New Camera Tests
1. Copy `bosch_flexidome_test.go` to `<vendor>_<model>_test.go`
2. Update test function names
3. Update expected values
4. Run tests to verify
5. Document in CAMERA_TESTS.md