47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
# Testing Instructions for rtx-sklearn-py
|
|
|
|
## Running Tests
|
|
|
|
Due to PyO3's `extension-module` feature conflicting with test linking, tests must be run with the feature disabled:
|
|
|
|
```bash
|
|
# Run all tests
|
|
cargo test -p rtx-sklearn-py --no-default-features --features gpu,async
|
|
|
|
# Run a specific test
|
|
cargo test -p rtx-sklearn-py --no-default-features --features gpu,async test_name
|
|
|
|
# Compile tests without running
|
|
cargo test -p rtx-sklearn-py --no-default-features --features gpu,async --no-run
|
|
```
|
|
|
|
## Why This is Needed
|
|
|
|
The `extension-module` feature in PyO3 is required for building Python extension modules (`.so` files) but prevents linking against Python libraries during testing. By disabling it for tests, we can:
|
|
|
|
1. Compile and run Rust unit tests
|
|
2. Test internal logic without Python runtime
|
|
3. Perform integration testing
|
|
|
|
## Python Integration Tests
|
|
|
|
For full end-to-end testing of the Python API, use pytest:
|
|
|
|
```bash
|
|
# Build the extension module first
|
|
maturin develop
|
|
|
|
# Run Python tests
|
|
pytest tests/python/
|
|
```
|
|
|
|
## Test Structure
|
|
|
|
- `tests/basic_test.rs` - Basic compilation tests
|
|
- `tests/integration_test.rs` - Module structure and error handling tests
|
|
- `tests/tdd_comprehensive_test.rs` - Placeholder for future comprehensive tests
|
|
- `tests/tdd_wrapper_test.rs` - Wrapper smoke tests
|
|
- `tests/test_simple_classifiers.rs` - Classifier smoke tests
|
|
|
|
Note: Many tests are currently stubs or placeholders as the full PyO3 API requires Python runtime for proper testing.
|