milvus/tests/integration
jaime da2d3fb430
enhance: enable manual compaction for collections without indexes (#36581)
issue: #36576
pr: #36577

Signed-off-by: jaime <yun.zhang@zilliz.com>
2024-10-08 14:51:20 +08:00
..
alias enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
balance enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
bloomfilter enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
channel_balance enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
compaction enhance: enable manual compaction for collections without indexes (#36581) 2024-10-08 14:51:20 +08:00
coorddownsearch fix: port listen racing in mix or standalone mode (#36459) 2024-09-26 21:01:15 +08:00
coordrecovery fix: port listen racing in mix or standalone mode (#36459) 2024-09-26 21:01:15 +08:00
crossclusterrouting enhance: Simplify cross cluster routing integration test (#29873) 2024-01-11 14:00:52 +08:00
datanode fix: port listen racing in mix or standalone mode (#36459) 2024-09-26 21:01:15 +08:00
expression enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
getvector enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
hellomilvus enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
httpserver enhance: support httpv1/v2 throttle and add it for httpV2(#35350) (#35504) 2024-08-20 16:32:56 +08:00
hybridsearch enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
import enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
indexstat enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
insert enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
jsonexpr enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
levelzero enhance: Add depguard rules to ban deprecated proto lib (#35140) (#35818) 2024-08-30 14:13:01 +08:00
materialized_view enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
ops enhance: Mark query node as read only after suspend (#35492) (#35586) 2024-08-20 19:00:56 +08:00
partialsearch enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
partitionkey enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
querynode enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
rangesearch enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
ratelimit fix: Fix DB limiter nodes are mistakenly cleaned up (#35991) (#35992) 2024-09-05 17:31:05 +08:00
rbac enhance: Enable dynamic update loaded collection's replica (#36417) 2024-09-26 10:43:15 +08:00
refreshconfig enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
replicas enhance: Enable dynamic update loaded collection's replica (#36417) 2024-09-26 10:43:15 +08:00
rg enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
rollingupgrade enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
sealpolicies enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
sparse enhance: [2.4]Allow empty sparse row (#36061) 2024-09-12 10:13:09 +08:00
target fix: port listen racing in mix or standalone mode (#36459) 2024-09-26 21:01:15 +08:00
upsert enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
watchcompatibility fix: port listen racing in mix or standalone mode (#36459) 2024-09-26 21:01:15 +08:00
meta_watcher_test.go enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
meta_watcher.go enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
minicluster_v2.go fix: port listen racing in mix or standalone mode (#36459) 2024-09-26 21:01:15 +08:00
OWNERS Trigger main workflow when integration test changed (#24020) 2023-05-11 09:51:19 +08:00
querynodev2_test.go fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
README.md enhance: docker-compose first then try to use docker compose (#35227) 2024-08-02 19:37:09 +08:00
suite.go fix: [2.4] Wait check node id goroutine in case of data race (#36302) (#36377) 2024-09-20 13:03:12 +08:00
util_collection.go enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
util_index.go feat: [Sparse Float Vector] added some integration tests (#31062) 2024-04-10 19:57:18 +08:00
util_insert.go enhance: unify data generation test APIs (#32955) 2024-05-14 14:33:33 +08:00
util_query.go enhance: Update protobuf-go to protobuf-go v2 (#34394) (#35555) 2024-08-21 18:50:58 +08:00
util_schema.go feat: [Sparse Float Vector] added some integration tests (#31062) 2024-04-10 19:57:18 +08:00

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

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.