mirror of
https://gitee.com/milvus-io/milvus.git
synced 2024-11-29 18:38:44 +08:00
f190e5d802
issue: #37289 those test case use search to verify replica's status, but if the search gap is 1s, the node down's effect may be fixed up by balance. This PR remove the 1 second gap between search operation. Signed-off-by: Wei Liu <wei.liu@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 | ||
meta_watcher_test.go | ||
meta_watcher.go | ||
minicluster_v2.go | ||
OWNERS | ||
querynodev2_test.go | ||
README.md | ||
suite.go | ||
util_collection.go | ||
util_index.go | ||
util_insert.go | ||
util_query.go | ||
util_schema.go |
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
MiniClusterand
MiniClusterSuite` 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.