com um clique
testing
// Use when running unit tests, debugging test failures, or adding new test cases using Catch2 framework
// Use when running unit tests, debugging test failures, or adding new test cases using Catch2 framework
Use when building knowhere from source, configuring build options (CPU/GPU/DISKANN/ASAN), or troubleshooting compilation errors
Use when exploring codebase structure, understanding index implementations (HNSW, IVF, DISKANN, Sparse, MinHash), working with third-party libraries (faiss, hnswlib, DiskANN, Cardinal), or locating specific functionality
Use when checking code style, running pre-commit hooks, or before committing changes to ensure compliance with Google style guide
Use when committing and pushing code changes, ensures DCO compliance and pre-commit validation
| name | testing |
| description | Use when running unit tests, debugging test failures, or adding new test cases using Catch2 framework |
# Run all tests
./Release/tests/ut/knowhere_tests
./Debug/tests/ut/knowhere_tests
# Run specific test by name pattern
./Release/tests/ut/knowhere_tests "[float metrics]"
./Release/tests/ut/knowhere_tests "Test Mem Index*"
# List all test names
./Release/tests/ut/knowhere_tests --list-tests
| Command | Description |
|---|---|
[tag] | Run tests with specific tag |
"Test Name*" | Run tests matching pattern |
--list-tests | List all available tests |
--list-tags | List all available tags |
-s | Show successful test output |
-d yes | Show test durations |
Tests are located in tests/ut/. Key test files:
| File | Tests |
|---|---|
test_index.cc | Index build/search operations |
test_float_metrics.cc | Float vector metrics (L2, IP, COSINE) |
test_binary_metrics.cc | Binary vector metrics (Hamming, Jaccard) |
test_sparse.cc | Sparse vector index |
#include "catch2/catch_test_macros.hpp"
#include "knowhere/index/index_factory.h"
TEST_CASE("Test Description", "[tag1][tag2]") {
// Setup
auto index = knowhere::IndexFactory::Instance().Create(...);
// Test
REQUIRE(index.has_value());
// Sections for sub-tests
SECTION("sub-test 1") {
// ...
}
}
If adding tests for new features, consider updating documentation. See
documentingskill.