mirror of https://github.com/milvus-io/milvus.git
Resolves: #36301 Signed-off-by: Congqi Xia <congqi.xia@zilliz.com> |
||
|---|---|---|
| .. | ||
| alias | ||
| balance | ||
| bloomfilter | ||
| channel_balance | ||
| compaction | ||
| coorddownsearch | ||
| coordrecovery | ||
| crossclusterrouting | ||
| datanode | ||
| expression | ||
| getvector | ||
| hellomilvus | ||
| httpserver | ||
| hybridsearch | ||
| import | ||
| indexstat | ||
| insert | ||
| jsonexpr | ||
| levelzero | ||
| materialized_view | ||
| null_data | ||
| ops | ||
| partialsearch | ||
| partitionkey | ||
| querynode | ||
| rangesearch | ||
| ratelimit | ||
| rbac | ||
| refreshconfig | ||
| replicas | ||
| rg | ||
| rollingupgrade | ||
| sealpolicies | ||
| sparse | ||
| streaming | ||
| target | ||
| upsert | ||
| OWNERS | ||
| README.md | ||
| meta_watcher.go | ||
| meta_watcher_test.go | ||
| minicluster_v2.go | ||
| querynodev2_test.go | ||
| suite.go | ||
| util_collection.go | ||
| util_index.go | ||
| util_insert.go | ||
| util_query.go | ||
| util_schema.go | ||
README.md
Integration test
This folder contains the integration test for Milvus components.
How to run integration test locally
Integration test still need some thirdparty components to start:
cd [milvus-folder]/deployments/docker/dev && docker compose up -d
Run following script to start the full integration test:
cd [milvus-folder]
make milvus # milvus needs to be compiled to make cpp build ready
./scripts/run_intergration_test.sh
If you want to run single test case, you could execute command like this example
# mq, etcd, minio ready before
cd [milvus-folder]
source scripts/setenv.sh
cd tests/integration/[testcase-folder]/
go test -run "$testCaseName^" -testify.m "$subTestifyCaseName^" -race -v
Recommended coding style for add new cases
Using suite
MiniClusterandMiniClusterSuite` provides lots of comment preset tool function to execute intergration test.
It is recommend to add a new test with testify/suite
import (
// ...
"github.com/milvus-io/milvus/tests/integration"
)
type NewSuite struct {
integration.MiniClusterSuite
}
// Setups and teardowns, optional if no custom logic needed
// example to suite setup & teardown, same logic applies to test setup&teardown
func (s *NewSuite) SetupSuite() {
s.MiniClusterSuite.SetupSuite()
// customized setup
}
func (s *NewSuite) TearDownSuite() {
s.MiniClusterSuite.TearDownSuite()
// customized teardown
}
New folder for each new scenario
It's a known issue that integration test cases run in same process might affect due to some singleton component not fully cleaned.
As a temp solution, test cases are separated into different packages to run independently.